ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 13.08.2024
Просмотров: 1083
Скачиваний: 0
СОДЕРЖАНИЕ
Основы c#. Урок 1. Что такое c#?
Основы c#. Урок 2. Что такое net Runtime?
Основы c#. Урок 3. Первая программа на c#
Основы c#. Урок 4. Переменные языка c#
Основы c#. Урок 5. Логические операторы
Основы c#. Урок 6. Массивы в c#
Основы c#. Урок 7. Операторы if и switch
Основы c#. Урок 8. Циклы for и foreach
Основы c#. Урок 10. Классы в c#
Основы c#. Урок 11. Конструкторы классов
Основы c#. Урок 12. Наследование
Основы c#. Урок 13. Запись в экземпляр базового класса экземпляра производного
Основы c#. Урок 14. Вложенные классы
Основы c#. Урок 15. Перегрузка бинарных операторов
Основы c#. Урок 16. Перегрузка унарных операторов
Основы c#. Урок 17. Область видимости
Основы c#. Урок 18. Виртуальные функции
Основы c#. Урок 19. Абстрактные классы
Основы c#. Урок 20. Запрещение наследования или модификатор sealed
Основы c#. Урок 21. Статические переменные
Основы c#. Урок 22. Статические методы класса
Основы c#. Урок 23. Статические конструкторы
Основы c#. Урок 24. Закрытые конструкторы или классы без экземпляров
Основы c#. Урок 25. Передача параметров переменой длины
Основы c#. Урок 26. Строки (класс System.String)
Основы c#. Урок 27. Строки (класс StringBuilder)
Основы c#. Урок 28. Передача параметров по ссылке и по значению (ref и out)
Основы c#. Урок 29. Пример передачи по ссылке
Основы c#. Урок 30. Перегрузка
Основы c#. Урок 31. Функции класса System.Array
Основы c#. Урок 35. Введение в атрибуты
Основы c#. Урок 36. Пример пользовательского атрибута.
Основы c#. Урок 37. Параметры командной строки
Основы c#. Урок 38. Метод Main в отдельном классе
Основы c#. Урок 39. Форматированный вывод
Основы c#. Урок 40. Класс System.Object
Основы c#. Урок 41. Методы класса System.Object
Основы c#. Урок 42. Переопределяем методы класса System.Object
Основы c#. Урок 44. Модификаторы доступа
Основы c#. Урок 45. Ссылка на текущий экземпляр класса (this)
Основы c#. Урок 47. Работаем со специальными папками
Основы c#. Урок 48. Получаем список всех дисков
Основы c#. Урок 49. Ввод/вывод в c# (System.Io)
Основы c#. Урок 50. Классы для работы с папками и файлами
Основы c#. Урок 51. Класс Directory
Основы c# Урок 53. Класс FileSystemInfo
Основы c# Урок 54. Класс DirectoryInfo
Основы c# Урок 55. Перечисление FileAttributes
Основы c#. Урок 47. Работаем со специальными папками
Класс Environment, рассмотреннуй на прошлом уроке, позволяет выяснять и местоположение различных специальных папок - SendTo, StartMenu, Program Files и др. Это может оказаться очень удобным для, например, добавлении ярлыка на вашу программу в папку Автозагрузки или на Рабочий Стол.
Специальные папки образуют перечисление Environment.SpecialFolder. Вот его некоторые члены:
Специальная папка |
Описание |
Cookies |
Папка с cookie |
DesktopDirectory |
Рабочий стол |
Favorites |
Избранное |
History |
История (Internet Explorer) |
Personal |
Папка "Мои документы" |
ProgramFiles |
Папка "Program Files" |
Recent |
Папка со списоком последних открываемых документов |
SendTo |
Папка SendTo |
StartMenu |
Главное меню |
Startup |
Папка автозагрузки |
System |
Системная папка Windows |
Обратите внимание, что некоторые из этих папок общие для всех пользователей, а некоторые персональны для каждого пользователя.
Вот пример работы со специальными папками:
//Получаем папку SendTo.
Environment.SpecialFolder p=Environment.SpecialFolder.SendTo;
//Получаем путь к папке SendTo.
string s=Environment.GetFolderPath(p);
Console.WriteLine("Папка SendTo: {0}.", s);
//Получаем папку Startup.
p=Environment.SpecialFolder.Startup;
//Получаем путь к папке Startup.
s=Environment.GetFolderPath(p);
Console.WriteLine("Папка Startup: {0}.", s);
Тут мы сначала записываем в переменную типа Environment.SpecialFolder нужную папку, затем извлекаем путь к нужной папке через метод GetFolderPath класса Environment.
Основы c#. Урок 48. Получаем список всех дисков
Класс Environment позволяет получить и имена всех логических дисков компьютера. Делается это через его статический метод GetLogicalDrives(). Вот пример:
string[] drives=Environment.GetLogicalDrives();
foreach(string s in drives)
{
//Выводим имена всех дисков.
Console.WriteLine(s);
}
А вот результат выполения программы:
Метод GetLogicalDrives() возвращает строковый массив с именами всех дисков.
Основы c#. Урок 49. Ввод/вывод в c# (System.Io)
Для операций ввода-вывода служит пространство имен System.IO.
Вот краткий обзор наиболее важных классов и перечислений из этого пространства имен:
BinaryReader - позволяет читать из файла данные различных типов (целые, вещественные, логические и т. п.)
BinaryWriter - позволяет записывать в файл данные различных типов (целые, вещественные, логические и т. п.)
Directory - класс со статическими методами для работы с папками
DirectoryInfo - класс для работы с некоторой папкой
File - класс со статическими методами для работы с файлом
FileInfo - класс для работы с некоторым файлом
Path - класс для работы с файловыми путями
Перечисление FileAttributes - атрибуты файла
Перечисление FileMode - возможные способы открытия файла
Перечисление FileAccess содержит константы, показывающие, открыт ли файл для чтения, записи и др.
FileSystemWatcher - класс для отслеживания изменений в файловой системе
Перечисление NotifyFilters - параметры, по которым происходит отслеживание изменений в файловой системе
Перечисление WatcherChangeTypes - какие изменения отслеживаются в файловой системе
Основы c#. Урок 50. Классы для работы с папками и файлами
Для работы с файлами и папками в пространстве имен System.IO существуют следующие классы:
Directory- содержит ряд статических методов для выполнения различных операций с папками (создание, удаление, проверка существования, получение текущей папки и т. п.).
DirectoryInfo- аналогичен классу Directory, только его методы не статические - для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя папки).
File- содержит ряд статических методов для выполнения различных операций с файлами (создание, удаление, копирование и т. п.).
FileInfo- аналогичен классу File, только его методы не статические - для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя файла).
Классы Directory и File яляются непосредственными потомками класса Object, а классы DirectoryInfo и FileInfo - потомками абстрактного класса FileSystemInfo.
Основы c#. Урок 51. Класс Directory
Класс Directory предназначен для работы с папками. Этот класс содержит статические методы для работы с папками (в отличие от класса DirectoryInfo, который содержит аналогичные методы, применяемые для экзампляра класса).
Вот основные методы класса Directory (все они статические):
CreateDirectory - создает папку с указанным именем.
Exists - проверяет существование папки с указанным именем.
Delete - удаляет папку с указанным именем.
Move - перемещает или переименовывает папку с указанным именем.
А вот пример их употребления:
usingSystem;
//Подключаем необходимое пространство имен.
usingSystem.IO;
namespaceconstest
{
class Class1
{
...
static void Main(string[] args)
{
//Создаем папку.
Directory.CreateDirectory("C:\\temp");
//Проверка существования папки.
if(Directory.Exists("C:\\temp1"))
{
Console.WriteLine("Папка \"temp1\" существует");
}
else
{
Console.WriteLine("Папка \"temp1\" не существует");
}
if(Directory.Exists("C:\\temp"))
{
Console.WriteLine("Папка \"temp\" существует");
}
else
{
Console.WriteLine("Папка \"temp\" не существует");
}
//Перемещение папки.
Directory.Move( "C:\\temp", "C:\\temp2");
//Удаление папки.
Directory.Delete( "C:\\temp2");
}
}
}
Обратите внимание, что метод Move можно использовать не только для перемещения, но и для переименования папки (что мы, фактически, в нашем примере и делаем). Для этого папка, задаваемая первым параметром (т. е. та, которую перемещаем) должна находиться на том же уровне, что и папка, задаваемая вторым параметром (т. е. куда перемещаем).
Основы c# Урок 52. Класс File
Класс File предназначен для работа с файлами. Он содержит статические методы, котроые позволяют создавать, удалять, переименовывать и делать другие действия с файлами. Для этого класса существует парный класс FileInfo, содержащий аналогичные методы экземпляра класса.
Вот основные методы класса File (все они, разумеется, статические):
Create - создание файла.
Exists - проверка существования файла.
Delete - удалениие файла.
Move - переименование и перемещение файла.
Copy - копирование файла.
А вот пример, демонстрирующий применение этих методов:
usingSystem;
// Подключаем необходимое пространство имен.
usingSystem.IO;
namespacecontest
{
class Test
{
public static void Main()
{
// Создаем файл.
File.Create("C:\\0.txt");
// Проверка существования файла.
if(File.Exists("C:\\1.txt"))
{
// Удаление файла.
File.Delete("C:\\1.txt");
}
// Переименование файла a.txt в b.txt.
File.Move("C:\\a.txt", "C:\\b.txt");
// Перемещение файла.
File.Move("C:\\c.txt", "D:\\c.txt");
// Копирование файла.
File.Copy("D:\\z.txt", "D:\\x.txt");
}
}
}
Обратите внимание, что и для перемещения, и для переименования файла мы используем один и тот же статичесикй метод Move (так как по сути это одна и та же операция).
Основы c# Урок 53. Класс FileSystemInfo
Класс FileSystemInfo является предком для классов DirectoryInfo и FileInfo. Именно поэтому мы и рассмотрим этот класс прежде рассматрения классов DirectoryInfo и FileInfo.
Класс FileSystemInfo содержит ряд свойств, которые позврляют получить общие характеристики файла или папки - например, время создания, различные атрибуты (только для чтения, скрытый и т. п.).
Вот наиболее важные методы свойства и методы этого класса (все эти свойства и методы применимы как к файлам, так и к папкам):
Delete - метод для удаления.
Refresh - метод для обновления информации о файле или папке (вызывается, например, перед получением атрибутов).
CreationTime - читает или задает время создания.
LastAccessTime - читает или задает время последнего доступа.
LastWriteTime - читает или задает время последней записи.
Attributes - читает или задает атрибуты (скрытый, сжатый, системный, временный, только для чтения и др.). Один из атрибутов (а именно Directory) позволяет выяснить, не является ли объект папкой.
FullName - читает полное имя (диск, папки, подпапки и т. д.).
Name - имя файла или папки.
Extension - расширение.
Exists - существование файла или папки.
Примеры использования этих методов и свойств иы рассмотрим на следующих уроках для потомков класса FileSystemInfo - т. е. для классов DirectoryInfo и FileInfo.
Основы c# Урок 54. Класс DirectoryInfo
Класс DirectoryInfo предназначен для работы с папками. Он позволяет делать стандартные операции - перемещение, удаление, создание папок и подпапок и др.. Кроме того, методы этого класса позволяют получить все подкаталоги и файлы указанной папки. В отличие от класса Directory, методы класса DirectoryInfo - это методы экземпляра (т. е. они не статические).
Вот пример использования этого класса:
// Создание объекта.
DirectoryInfo di = new DirectoryInfo("c:\\tmp\\tmp2");
// Создаем папку.
di.Create();
// Вывод информации о папке.
String s = "";
s += "Full nane: " + di.FullName + "\n";
s += "Root: " + di.Root + "\n";
s += "Name: " + di.Name;
MessageBox.Show(s);
// Перемещение папки.
di.MoveTo("c:\\tmp\\tmp3");
// Создание подпапок.
di.CreateSubdirectory("subdir1");
di.CreateSubdirectory("subdir2");