Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа теория передел.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
447.59 Кб
Скачать

9.3. Работа с классом Directory

Возможности класса Directory во много аналогичны возможностям класса DirectoryInfo. Однако класс Directory является статическим классом и не позволяет создавать объекты, а только позволяет вызывать его методы. Кроме этого отметим, что элементы Directory обычно возвращают строки (string), а не объекты конкретных типов, таких, как FileInfo или DirectoryInfo.

В примере приведенном ниже показано использование класса Directory для вывода не экран название всех устройств компьютера (с помощью статического метода GetLogicalDrives()) и для удаления ранее созданной папки с именем \MyFolder помощью статического метода Delete():

// Перечисление всех драйверов компьютера

string[] drives = Directory.GetLogicalDrives();

Console.WriteLine("Драйверы компьютера:");

foreach (string s in drives)

Console.WriteLine("--> {0} ", s);

// Удаление папки С:\MyFolder

try {Directory.Delete(string.Format(@"C:\MyFolder"));}

catch (IOException e) { Console.WriteLine(e.Message); }

9.4. Работа с классом DriveInfo

В пространстве имен System.IO содержится класс с именем DriveInfo. Так же, как и Directory.GetLogicalDrives(), стати-ческий метод DriveInfo.GetDrives() позволяет получить имена драйверов компьютера. Однако в отличие от Directo-ry.GetLogicalDrives(), DriveInfo предоставляет множество других данных (такие как тип драйвера, свободное место, метки тома и т.п.). Рассмотри следующий пример:

// Получение информации обо всех драйверах

DriveInfo[] myDrives = DriveInfo.GetDrives();

// Вывод на экран их данных

foreach(DriveInfo d in myDrives) {

Console.WriteLine("Имя: {0}", d.Name);

Console.WriteLine("Тип: {0}", d.DriveType);

// проверка, смонтирован ли драйвер

if (d.IsReady) {

Console.WriteLine("Свободное место: {0}",

d.TotalFreeSpace);

Console.WriteLine("Формат: {0}", d.DriveFormat);

Console.WriteLine("Метка: {0}", d.VolumeLabel);

Console.WriteLine(); } }

  1. Классы для работы с файлами (System.Io.File, System.Io.FileInfo).

При разработке реальных приложений обязательным является хранение данных на устройствах внешней памяти для поддержки связи между сеансами работы с приложением. В библиотеку платформы .Net – FCL имеется пространство имен System.IO содержащее набор классов для работы с папками (директориями, каталогами) и файлами на внешних устройствах. В это пространство имен включены классы Directory и File, которые содержат методы для создания, удаления, копирования и перемещения папок и файлов с помощью статических методов. С этими классами тесно связаны классы FileInfo и DirectoryInfo, которые содержат аналогичную функциональность, но используют методы экземпляров класса (поэтому, для работы с ними должны быть созданы объекты этих классов с помощью операции new). Классы FileInfo и DirectoryInfo являются производными от абстрактного класса FileSystemInfo. Классы FileInfo и DirectoryInfo лучше использовать для получения всех детальных описаний файлов и папок (например, время их создания, возможности чтения/записи, и т.п.), так как методы этих классов возвращают строго типизированные объекты. А методы классов Directory и File чаще возвращают простые строковые значения, а не строго типизированные объекты.