Типы DirectoryInfo и FileInfo во многом наследуют свое поведение от абстрактного базового класса FileSystemInfo. По большей части члены класса FileSystemInfo используются для получения общих характеристик (таких как, например, время создания, различные атрибуты и т.д.) соответствующего файла иди каталога. В табл. 16.2 описаны свойства FileSystemInfo, представляющие наибольший интерес.

Таблица 16.2. Свойства FileSystemInfo

Свойство Описание
Attributes Читает или устанавливает атрибуты, связанные с текущим файлом, представленным в перечне FileAttributes
CreationTime Читает или устанавливает время создания для текущего файла или каталога
Exists Может использоваться для выяснения того, существует ли данный файл или каталог
Extension Читает расширение файла
FullName Получает полный путь каталога или файла
LastAccesTime Читает или устанавливает время последнего доступа к текущему файлу или каталогу
LastWriteTime Читает или устанавливает время последнего сеанса записи в текущий файл или каталог
Name Для файлов получает имя файла. Для каталогов получает имя последнего каталога в иерархии, если такая иерархия существует. Иначе получает имя каталога

Тип FileSystemInfo определяет также метод Delete(). Этот метод реализуется производными типами для удаления данного файла или каталога с жесткого диска. Кроме того, перед получением информации атрибута может вызываться Refresh(), чтобы гарантировать то, что информация о текущем файле (или каталоге) не будет устаревшей.

<p>Работа с типом DirectoryInfo</p>

Первым из рассматриваемых в нашем обсуждении типов, связанных с реализацией ввода-вывода и допускающих создание экземпляров, будет класс DirectoryInfo. Этот класс предлагает набор членов, используемых для создания, перемещения, удаления и перечисления каталогов и подкаталогов. Кроме функциональных возможностей, обеспеченных базовым классом (FileSystemInfo), класс DirectoryInfo предлагает и свои члены, описанные в табл. 16.3.

Таблица 16.3. Основные члены типа DirectoryInfo

Члены Описание
Create() CreateSubdirectory() Создает каталог (или множество подкаталогов) в соответствии с заданным именем пути
Delete() Удаляет каталог и все его содержимое
GetDirectories() Возвращает массив строк, представляющих все подкаталоги текущего каталога
GetFiles() Получает массив типов FileInfo, представляющих множество файлов данного каталога
MoveTo() Перемещает каталог и его содержимое в место, соответствующее заданному новому пути
Parent Получает каталог родителя указанного пути
Root Получает корневую часть пути

Мы начнем работу с типом DirectoryInfo с попытки указать конкретный путь каталога для использования в качестве параметра конструктора. Чтобы получить доступ к текущему каталогу приложения (т.е. к каталогу приложения, выполняющегося в данный момент), используйте обозначение ".". Вот подходящие примеры.

// Привязка к текущему каталогу приложения.

DirectoryInfo dir1 = new DirectoryInfo(".");

// Привязка к C:\Windows с помощью строки,

// для которой указано "дословное" применение.

DirectoryInfo dir2 = new DirectoryInfo(@"C:\Windows");

Во втором примере предполагается, что передаваемый конструктору путь (путь C:\Windows) уже существует на данной физической машине. Если вы попытаетесь взаимодействовать с несуществующим каталогом, будет сгенерировано исключение System.IO.DirectoryNotFoundException (каталог не найден). Поэтому если вы укажете каталог, который еще не создан, то перед его использованием вам придется сначала вызвать метод Create().

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

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