Иллюстрированный самоучитель по VB.NET

       

Важнейшие члены классов FileSystemInfo, FileInfo и DirectoryInfo


Важнейшие члены классов FileSystemInfo, FileInfo и DirectoryInfo

Класс FileSystemlnfo является базовым для классов Directorylnfo и Filelnfo и содержит большую часть их общей функциональности. Перед нами хороший пример тех возможностей, которые открываются при использовании абстрактных базовых классов. В классе Directory Info существует метод GetFileSystemlnfos, который возвращает массив объектов FileSystemlnfо, представляющих файлы и подкаталоги заданного каталога. Такое становится возможным только благодаря существованию класса FileSystemlnfo. Важнейшие члены базового класса FileSystemlnf о перечислены в табл. 9.4.

Таблица 9.4. Члены базового класса FileSystemInfo



Метод/свойство

Описание

Attributes (свойство)

Атрибуты объекта. Свойство доступно для чтения и записи

CreationTime (свойство)

Время создания объекта. Свойство доступно для чтения и записи

Exists (свойство)

Логический признак существования файла или каталога

Extension (свойство)

Расширение файла

FullName (свойство)

Полное имя каталога или файла

LastAccessTime (свойство)

Дата/время последнего обращения к объекту. Свойство доступно для чтения и записи

LastWriteTime (свойство)

Время последней записи в объект. Свойство доступно для чтения и записи

Name (свойство)

Для файлов — имя файла. Для каталогов — имя последнего каталога в иерархии, если это возможно. В противном случае возвращается полное имя

Delete

Удаляет объект

Refresh

Обновляет состояние объекта

В табл. 9.5 и 9.6 перечислены важнейшие методы класса DirectoryInfo и методы класса Filelnfo, не имеющие непосредственного отношения к потокам (эта тема будет рассматриваться позже).

Таблица 9.5. Основные методы класса DirectoryInfo

Метод/свойство

Описание

Exists (свойство) Логический признак существования каталога
Name (свойство) Имя каталога
Parent (свойство) Объект DirectoryInfo для родительского каталога (для корневых каталогов возвращается Nothing)
Create Создает каталог, путь к которому указан в конструкторе DirectoryInfo
CreateSubdirectory (ByVal As String) Создает подкаталог, путь к которому передается в виде параметра. Возвращает объект Directorylnfo для созданного подкаталога
Delete Удаляет пустой каталог, представленный объектом Directorylnfo. Если присвоить True необязательному логическому параметру, происходит рекурсивное удаление непустого каталога и всех его подкаталогов
GetDirectories Возвращает массив объектов Directorylnfo для подкаталогов текущего каталога
GetFiles

Возвращает массив объектов Filelnfo для файлов текущего каталога

GetFileSystemlnfos Хороший пример использования абстрактных классов: метод возвращает массив объектов FileSystemlnfo, представляющих все файлы и подкаталоги текущего каталога
MoveTo(ByVal destDirName As String) Перемещает Directorylnfo и все его содержимое
Root (свойство) Объект DirectoryIlnfo для корневого каталога в иерархии текущего каталога
<
Таблица 9.6. Члены класса Filelnfo, не возвращающие потоков



Метод/свойство



Описание

Directory (свойство) Объект Directorylnfo для каталога, в котором находится файл
DirectoryName (свойство) Полный путь к файлу в строковом виде
Exists (свойство) Логический признак существования файла
Length (свойство) Размер текущего файла


CopyTo(ByVal destFileName As String)

Копирует существующий файл и возвращает объект Filelnfo для копии. Необязательный логический параметр управляет перезаписью существующих файлов
Create Создает файл по имени, указанному при конструировании объекта Filelnfo, и возвращает объект FileSystem для нового файла
Delete Удаляет файл, представленный объектом FileInfo
MoveTo(ByVal destFileName As String) Перемещает файл
Идея выделения общей функциональности в абстрактный базовый класс выглядит впол-не логично, однако в данном случае она реализована не лучшим образом. Например, свдйство Length присутствует в файле FileInfo, но не поддерживается в FileSystemlnfo, поэтому для вычисления размера дерева каталогов приходится прибегать к услугам другого объекта — а именно вызывать метод Size объекта Folder, входящего в модель FileSystemObject. Эта модель впервые была представлена в VBScript, поэтому в решение приходится включать ссылку на библиотеку сценарной поддержки на базе СОМ.




Содержание раздела