Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прога - ответы2.docx
Скачиваний:
19
Добавлен:
23.04.2019
Размер:
206.38 Кб
Скачать

Классы Directory (DirectoryInfo) и File (FileInfo) Некоторые общие свойства классов DirectoryInfo и FileInfo:

Attributes

Получает или устанавливает атрибуты, представленые перечислением FileAttributes (доступный только для чтения, зашифрованный, скрытый или сжатый)

CreationTime

Получает или устанавливает время создания текущего файла или каталога

Exists

Может использоваться для определения, существует ли данный файл или каталог

Extension

Извлекает расширение файла

FullName

Получает полный путь к файлу или каталогу

LastAccessTime

Получает или устанавливает время последнего доступа к текущему файлу или каталогу

LastWriteTime

Получает или устанавливает время последней записи в текущий файл или каталог

Name

Получает имя текущего файла или каталога

Дополнительные возможности класса DirectoryInfo

Create ()

CreateSubdirectory()

Создает каталог (или набор подкаталогов) по заданному путевому имени

Delete ()

Удаляет каталог и все его содержимое

GetDirectories ()

Возвращает массив объектов Directorylnfo, описывающих все подкаталоги в текущем каталоге

GetFiles ()

Возвращает массив объектов Filelnfo, описывающих файлы в заданном каталоге

MoveTo ()

Перемещает каталог со всем содержимым по новому пути

Parent

Извлекает родительский каталог данного каталога

Root

Получает имя корневого каталога

Пример:

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

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

Console.WriteLine("Name: {0}", dir.Name); // имя каталога

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

// Получить все файлы с расширением *.exe

FileInfo[] exeFiles = dir.GetFiles("*.exe", SearchOption.AllDirectories);

// Сколько файлов найдено?

Console.WriteLine("Found {0} EXE files", exeFiles.Length);

// Вывести имя каждого файла

foreach (Filelnfo f in exeFiles)

{

Console.WriteLine("File name: {0}", f.Name);

}

Дополнительные возможности класса FileInfo

AppendText()

Создает объект StreamWriter (описанный ниже) и добавляет текст в файл

СоруТо()

Копирует существующий файл в новый файл

Create()

Создает новый файл и возвращает для него объект FileStream (описанный ниже)

CreateText()

Создает объект StreamWriter, записывающий новый текстовый файл

Delete()

Удаляет файл, к которому привязан экземпляр Filelnfo

Directory

Получает экземпляр родительского каталога

DirectoryName

Получает полный путь к родительскому каталогу

Length

Получает размер текущего файла или каталога

MoveTo()

Перемещает указанный файл в новое местоположение, предоставляя возможность указать новое имя файла

Name

Получает имя файла

Open()

Открывает файл с различными привилегиями чтения/записи и совместного доступа

OpenText()

Создает для файла объект StreamReader (описанный ниже)

OpenRead()

Создает доступный только для чтения объект FileStream

OpenWrite()

Создает доступный только для записи объект FileStream

Пример создания файла:

f = new FileInfo(@"d:\test.dat");

f.Create();

Среди методов создания/открытия файлов наиболее гибким является метод Open(). Первый его параметр принимает значение из перечисления FileMode, описывающего, как именно должен быть создан/открыт файл:

CreateNew

Создать новый файл. Если файл уже существует, генерируется исключение IOException

Create

Создать новый файл. Если файл уже существует, он будет перезаписан

Open

Открыть существующий файл. Если файл не существует, генерируется исключение FileNotFoundException

OpenOrCreate

Открыть файл, если он существует. Иначе создать новый

Truncate

Открыть файл и усечь его до нулевой длины

Append

Открывает файл, переходит в его конец и начинает операции записи. Если файл не существует, то создается новый

Второй параметр метода Ореп() — значение перечисления FileAccess — используется для определения поведения чтения/записи лежащего в основе потока:

public enum FileAccess { Read, Write, ReadWrite }

И, наконец, третий параметр метода Open() — FileShare — указывает, как файл может быть разделен с другими файловыми дескрипторами. Ниже перечислены его возможные значения:

public enum FileShare { Delete, Inheritable, None, Read, ReadWrite, Write }

Классы Directory и File предоставляют функциональность, практически идентичную классам DirectoryInfo и FileInfo, однако через статические члены. Т.е следующие примеры имеют идентичную функциональность:

FileInfo f = new FileInfo(@"C:\Test2.dat");

FileStream fs = f.Create();

FileStream fs = File.Create(@"C:\Test2.dat");