![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Класс DirectoryInfo
Данный класс наследует члены класса FileSystemInfo и содержит дополнительный набор членов, которые предназначены для создания, перемещения, удаления, получения информации о каталогах и подкаталогах в файловой системе. Наиболее важные члены класса содержатся в приложении 9. Работа с типом DirectoryInfo начинается с того, что мы создаем экземпляр класса (объект), указывая при вызове конструктора в качестве параметра путь к нужному каталогу. Если мы хотим обратиться к текущему каталогу (то есть каталогу, в котором в настоящее время производится выполнение приложения), вместо параметра используется обозначение ".". Пример: /* Создаем объект DirectoryInfo, которому будет обращаться к текущему каталогу*/ DirectoryInfo dir1 = new DirectoryInfo("."); // Создаем объект DirectoryInfo, которому будет обращаться к каталогу d: \prim DirectoryInfo dir2 = new DirectoryInfo(@" d: \prim"); Если мы попытаемся создать объект DirectoryInfo, связав его с несуществующим каталогом, то будет сгенерировано исключение System.IO.DirectoryNotFoundException. Если же все нормально, то мы сможем получить доступ к данному каталогу. В примере, который приведен ниже, мы создаем объект DlrectoryInfo, который связан с каталогом d: \prim, и выводим информацию о данном каталоге: using System; using System.Text; using System.IO; namespace MyProgram { class Program { static void Main(string[] args) { DirectoryInfo dir = new DirectoryInfo(@" d: \prim"); Console.WriteLine(" ***** " +dir.Name+" *****"); Console.WriteLine(" FullName: {0}", dir.FullName); Console.WriteLine(" Name: {0}", dir.Name); Console.WriteLine(" Parent: {0}", dir.Parent); Console.WriteLine(" Creation: {0}", dir.CreationTime); Console.WriteLine(" Attributes: {0}", dir.Attributes.ToString()); Console.WriteLine(" Root: {0}", dir.Root); } } } Свойство Attributes позволяет получить информацию об атрибутах объекта файловой системы. Возможные значения данного свойства приведены в приложении 9. Через DirectoryInfo можно не только получать доступ к информации о текущем каталоге, но получить доступ к информации о его подкаталогах: static void printDirect(DirectoryInfo dir) { Console.WriteLine(“***** “+dir.Name+” *****”); Console.WriteLine(“FullName: {0}”, dir.FullName); Console.WriteLine(“Name: {0}”, dir.Name); Console.WriteLine(“Parent: {0}”, dir.Parent); Console.WriteLine(“Creation: {0}”, dir.CreationTime); Console.WriteLine(“Attributes: {0}”, dir.Attributes.ToString()); Console.WriteLine(“Root: {0}”, dir.Root); } static void Main(string[] args) { DirectoryInfo dir = new DirectoryInfo(@”d: \prim”); printDirect(dir); DirectoryInfo[] subDirects = dir.GetDirectories(); Console.WriteLine(“Найдено{0}подкаталогов”, subDirects.Length); foreach (DirectoryInfo d in subDirects) printDirect(d); } Метод CreateSubdirectory() позволяет создать в выбранном каталоге как единственный подкаталог, так и множество подкаталогов (в том числе, и вложенных друг в друга). Создадим в каталоге несколько дополнительных подкаталогов: DirectoryInfo dir = new DirectoryInfo(@»d: \prim»); dir.CreateSubdirectory(«doc»); //создали подкаталог //создали вложенный подкаталог dir.CreateSubdirectory(@»book\2008»); Метод MoveTo() позволяет переместить текущий каталог по заданному в качестве параметра адресу. При этом возможно произвести переименование каталога. Например: DirectoryInfo dir = new DirectoryInfo(@»d: \prim\bmp»); dir.(@»d: \prim\letter\bmp»); В данном случае каталог bmp перемещается в по адресу d: \prim\letter\bmp. Так как имя перемещаемого каталога совпадает с крайним правым именем в адресе нового местоположения каталога, то переименования не происходит. Следующий пример позволит нам переименовать текущий каталог: DirectoryInfo dir = new DirectoryInfo(@»d: \prim\letter»); dir.MoveTo(@»d: \prim\archive»);
|