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