// Привязка к несуществующему каталогу с последующим его созданием.

DirectoryInfo dir3 = new DirectoryInfo(@"C:\Window\Testing");

dir3.Create();

После создания объекта DirectoryInfo вы можете исследовать содержимое соответствующего каталога с помощью свойств, унаследованных от FileSystemInfo. Например, следующий класс создает новый объект DirectoryInfo, связанный с C:\Windows (при необходимости измените этот путь в соответствии с установками системы на вашей машине) и отображающий ряд интересных статистических данных об указанном каталоге (рис. 16.2).

class Program {

 static void Main(string[] args) {

  Console.WriteLine("***** Забавы с Directory(Info) *****\n");

  DirectoryInfo dir = new DirectoryInfo(@"C:\Windows");

  // Информация о каталоге.

  Console.WriteLine("***** Информация о каталоге *****");

  Console.WriteLine("Полное имя: {0} ", dir.FullName);

  Console.WriteLine("Имя: {0} ", dir.Name);

  Console.WriteLine("Родитель: {0} ", dir.Parent);

  Console.WriteLine("Создан: {0} ", dir.CreationTime);

  Console.WriteLine("Атрибуты: {0} ", dir.Attributes);

  Console.WriteLine("Корневой каталог: {0}", dir.Root);

  Console.WriteLine("********************************\n");

 }

}

Рис. 16.2. Информация о каталоге Windows

<p>Перечень FileAttributes</p>

Свойство Attributes, предоставленное объектом FileSystemInfо, обеспечивает получение различной информации о текущем каталоге или файле, и вся она содержится в перечне FileAttributes. Имена полей этого перечня говорят сами за себя, но некоторые менее очевидные имена здесь сопровождаются комментариями (подробности вы найдете в документации .NET Framework 2.0 SDK).

public enum FileAttributes {

 ReadOnly,

 Hidden,

 // Файл, являющийся частью операционной системы или используемый

 // исключительно операционной системой.

 System,

 Directory,

 Archive,

 // Это имя зарезервировано для использования в будущем.

 Device,

 // Файл является 'нормальным' (если не имеет других

 // установленных атрибутов),

 Normal,

 Temporary,

 // Разреженные файлы обычно являются большими файлами,

 // данные которых по большей части – нули.

 SparseFile,

 // Блок пользовательских данных, связанных с файлом или каталогом.

 ReparsePoint,

 Compressed,

 Offline,

 // Файл, который не будет индексирован службой индексации

 // содержимого операционной системы.

 NotContentIndexed,

 Encrypted

}

<p>Перечисление файлов с помощью DirectoryInfo</p>

Вдобавок к получению базовой информации о существующем каталоге, вы можете добавить в пример несколько вызовов методов типа DirectoryInfo. Сначала используем метод GetFiles(), чтобы получить информацию обо всех файлах *.bmp, размещенных каталоге C:\Windows. Этот метод возвращает массив типов FileInfo, каждый из которых сообщает подробности о конкретном файле (подробности о самом типе FileInfo будут представлены в этой главе немного позже).

class Program {

 static void Main(string[] args) {

  Console.WriteLine("***** Забавы с Directory(Info) *****\n");

  DirectoryInfo dir = new DireetoryInfо(@"C:\Windows");

  // Получение всех файлов с расширением bmp.

  FileInfo[] bitmapFiles = dir.GetFiles("*.bmp");

  // Сколько их всего?

  Console.WriteLine("Найдено {0} файлов *.bmp\n", bitmapFiles.Length);

  // Вывод информации о файлах.

  foreach (FileInfo f in bitmapFiles) {

Перейти на страницу:

Похожие книги