// Привязка к несуществующему каталогу с последующим его созданием.
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("*
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} "
Console.WriteLine("Атрибуты: {0} ", dir.Attributes);
Console.WriteLine("Корневой каталог: {0}", dir.Root);
Console.WriteLine("********************************\n");
}
}
Рис. 16.2. Информация о каталоге Windows
Перечень FileAttributes
Свойство 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
}
Перечисление файлов с помощью DirectoryInfo
Вдобавок к получению базовой информации о существующем каталоге, вы можете добавить в пример несколько вызовов методов типа 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) {