Важнейшие члены классов FileSystemInfo, FileInfo и DirectoryInfo
Таблица 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, поэтому в решение приходится включать ссылку на библиотеку сценарной поддержки на базе СОМ.
