Net, класи directory і directoryinfo

DirectoryInfo містить набір членів, які використовуються для створення, переміщення, видалення та перерахування каталогів і підкаталогів. На додаток до функціональності, наданої базовим класом (FileSystemInfo), DirectoryInfo пропонує ключові члени, перераховані нижче:

Створює каталог (або набір підкаталогів) по заданому подорожнього імені

Видаляє каталог і весь його вміст

Повертає масив об'єктів DirectoryInfo, які представляють усі підкаталоги в поточному каталозі

Витягує масив об'єктів FileInfo, що представляє безліч файлів в заданому каталозі

Переміщує каталог з усім вмістом по новому шляху

Витягує батьківський каталог даного каталогу

Отримує кореневу частину шляху

Робота з типом DirectoryInfo починається з вказівки певного шляху в якості параметра конструктора. Якщо потрібно отримати доступ до поточного робочого каталогу (тобто каталогу виконується додатки), застосовуйте нотацію ".". Ось деякі приклади:

У другому прикладі робиться припущення, що переданий в конструктор шлях (C: \ Windows) фізично існує на машині. При спробі взаємодіяти з неіснуючим каталогом буде згенеровано виняток System.IO.DirectoryNotFoundException. Таким чином, щоб вказати каталог, який поки ще не створено, спочатку доведеться викликати метод Create ():

Після створення об'єкта DirectoryInfo можна досліджувати його вміст, використовуючи будь-яку властивість, успадковане від FileSystemInfo. наприклад:

Net, класи directory і directoryinfo

На додаток до отримання базових деталей про існуючий каталозі можна розширити поточний приклад використанням деяких методів типу DirectoryInfo. Для початку можна застосувати метод GetFiles () для отримання інформації про всі файли * .jpg, розташованих в каталозі C: ​​\ Windows \ Web \ Wallpaper. Якщо на вашій машині немає каталогу C: \ Windows \ Web \ Wallpaper, змініть код для читання файлів з якогось існуючого каталогу (наприклад, прочитайте всі файли * .bmp з каталогу C: \ Windows).

Метод GetFiles () повертає масив об'єктів типу FileInfo, кожен з яких представляє детальну інформацію про конкретний файл. Припустимо, що наступний статичний метод класу Program викликається в методі Main ():

Net, класи directory і directoryinfo

Після випробування типу DirectoryInfo в дії можна приступати до вивчення типу Directory. Здебільшого статичні члени Directory повторюють функціональність, надану членами рівня екземпляра, які визначені в DirectoryInfo. Згадайте, однак, що члени Directory зазвичай повертають строкові дані замість строго типізованих об'єктів Filelnfo / DirectoryInfo.

Простір імен System.IO включає клас DriveInfo. Подібно Directory.GetLogicalDrives (), статичний метод DriveInfo.GetDrives () дозволяє отримати імена дискових приводів машини.

Однак, на відміну від Directory.GetLogicalDrives (), DriveInfo надає безліч додаткових деталей (таких як тип приводу, доступне вільний простір і мітка тому).