Шрифт:
На рис. 16.5 показан вывод, соответствующий состоянию моей машины.
Рис. 16.5. Сбор информации о дисках с помощью DriveInfo
Итак, мы рассмотрели некоторые возможности классов Directory.DirectoryInfo и DriveInfo. Далее вы узнаете, как создавать, открывать, закрывать и уничтожать файлы, присутствующие в каталоге.
Исходный код. Проект DriveTypeApp размещен в подкаталоге, соответствующем главе 16.
Работа с классом FileInfo
Как показывает пример 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.
Метод FileInfо.Create
Первая возможность создания дескриптора файла обеспечивается методом FileInfo.Create.
Обратите внимание на то, что метод FileInfo.Create возвращает тип FileStream, который, в свою очередь, предлагает набор синхронных и асинхронных операций записи/чтения для соответствующего файла. Объект FileStream, возвращенный методом FileInfo.Create, обеспечивает полный доступ чтения/записи всем пользователям.
Метод FileInfo.Open
Метод FileInfо.Open можно использовать для того, чтобы открывать существующие файлы и создавать новые с более точными характеристиками, чем при использовании FileInfo.Create. В результате вызова Open возвращается объект FileStream. Рассмотрите следующий пример.