Шрифт:
Запустив это приложение, вы увидите список, подобный показанному на рис. 16.3 (ваши результаты могут быть другими!).
Рис. 16.3. Информация о файлах с точечными изображениями
Создание подкаталогов с помощью DirectoryInfo
Вы можете программно расширить структуру каталога, используя метод DirectoryInfo.CreateSubdirectory. Этот метод с помощью одного обращения к функции позволяет создать как один подкаталог, так и множество вложенных подкаталогов. Для примера рассмотрите следующий блок программного кода, расширяющий структуру каталога C:\Windows путем создания нескольких пользовательских подкаталогов.
Если теперь проверить каталог Windows в окне программы Проводник, вы увидите там новые подкаталоги (рис. 16.4).
Рис. 16.4. Создание подкаталогов
Хотя вы и не обязаны использовать возвращаемое значение метода CreateSubdirectory, полезно знать, что в случае успешного выполнения тип DirectoryInfo возвращает созданный элемент.
Работа с типом Directory
Теперь, когда вы увидели тип DirectoryInfo в действии, рассмотрим тип Directory. По большей части члены Directory "дублируют" функциональные возможности, обеспечиваемые членами уровня экземпляра DirectoryInfo. Напомним, однако, что члены Directory возвращают строковые типы, а не строго типизированные объекты FileInfo/DirectoryInfo.
Чтобы проиллюстрировать некоторые функциональные возможности типа Directory, заключительная модификация этого примера отображает имена всех дисков, отображаемых на данном компьютере (для этого применяется метод Directorу.GetLogicalDrives) и используется статический метод Directory. Delete для удаления ранее созданных подкаталогов \MyFoo и \MyBar\MyQaaz.
Исходный код. Проект MyDirectoryApp размещен в подкаталоге, соответствующем главе 16.
Работа с типом класса DriveInfo
В .NET 2.0 пространство имен System.IO предлагает класс с именем DriveInfo. Подобно Directory.GetLogicalDrives, статический метод DriveInfo.GetDrives позволяет выяснить имена дисков машины. Однако, в отличие от Directory.GetLogicalDrives, класс DriveInfo обеспечивает множество дополнительной информации (например, информацию о типе диска, свободном пространстве, метке тома и т.д.). Рассмотрите следующий пример программного кода.