В .NET 2.0 пространство имен System.IO предлагает класс с именем DriveInfo. Подобно Directory.GetLogicalDrives(), статический метод DriveInfo.GetDrives() позволяет выяснить имена дисков машины. Однако, в отличие от Directory.GetLogicalDrives(), класс DriveInfo обеспечивает множество дополнительной информации (например, информацию о типе диска, свободном пространстве, метке тома и т.д.). Рассмотрите следующий пример программного кода.

class Program {

 static void Main(string[] args) {

  Console.WriteLine("***** Забавы с DriveInfo *****\n'');

  // Получение информации о дисках.

  // Вывод информации о состоянии.

  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}\n", d.VolumeLabel);

   }

  }

  Console.ReadLine();

 }

}

На рис. 16.5 показан вывод, соответствующий состоянию моей машины.

Рис. 16.5. Сбор информации о дисках с помощью DriveInfo

Итак, мы рассмотрели некоторые возможности классов Directory.DirectoryInfo и DriveInfo. Далее вы узнаете, как создавать, открывать, закрывать и уничтожать файлы, присутствующие в каталоге.

Исходный код. Проект DriveTypeApp размещен в подкаталоге, соответствующем главе 16.

<p>Работа с классом FileInfo</p>

Как показывает пример MyDirectoryApp, класс FileInfo позволяет получить подробные сведения о файлах, имеющихся на вашем жестком диске (время создания, размер, атрибуты и т.д.), а также помогает создавать, копировать, перемещать и уничтожать файлы. Вдобавок к набору функциональных возможностей, унаследованных от FileSystemInfо, класс FileInfo имеет свои уникальные члены, и некоторые из них описаны в табл. 16.4.

Таблица 16.4. Наиболее важные элементы FileInfo

Член Описание
AppendText() Создает тип StreamWriter (будет описан позже) для добавления текста в файл
CopyTo() Копирует существующий файл в новый файл
Create() Создает новый файл и возвращает тип FileStream (будет описан позже) для взаимодействия с созданным файлом
CreateText() Создает тип StreamWriter, который записывает новый текстовый файл
Delete() Удаляет файл, к которому привязан экземпляр FileInfo
Directory Получает экземпляр каталога родителя
DirectoryName Получает полный путь к каталогу родителя
Length Получает размер текущего файла или каталога
MoveTo() Перемещает указанный файл в новое место, имеет опцию для указания нового имени файла
Name Получает имя файла
Open() Открывает файл с заданными возможностями чтения/записи и совместного доступа
OpenRead() Создает FileStream с доступом только для чтения
OpenText() Создает тип StreamReader (будет описан позже) для чтения из существующего текстового файла
OpenWrite() Создает FileStream с доступом только для записи

Важно понимать, что большинство членов класса FileInfo возвращает специальный объект ввода-вывода (FileStream, StreamWriter и т.д.), который позволит начать чтение или запись данных в соответствующем файле в самых разных форматах. Мы исследуем указанные типы чуть позже, а пока что давайте рассмотрим различные способы получения дескриптора файла с помощью типа класса FileInfo.

<p>Метод FileInfо.Create()</p>

Первая возможность создания дескриптора файла обеспечивается методом FileInfo.Create().

public class Program {

 static void Main(string[] args) {

  // Создание нового файла на диске C.

Перейти на страницу:

Похожие книги