Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Класс 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»);






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.