Опубликован: 07.05.2010 | Уровень: для всех | Доступ: платный
Лекция 16:

Работа с файлами и каталогами

< Лекция 15 || Лекция 16 || Лекция 17 >
Аннотация: Работа с файловой системой. Классы Directory и File.

Файлы к лекции Вы можете скачать здесь.
Требуется особая осторожность в применении рассматриваемых ниже стредств, чтобы случайно не уничтожить нужную информацию на Вашем компьютере!!!

Несомненно, база данных являются наилучшим способом хранения информации. Они обеспечивают доступ к данным большому количеству пользователей одновременно и с максимальным быстродействием. Такие данные, организованные в базу данных, называют структурированными. Но иногда может потребоваться более простой способ хранения информации, а также получение обзорных сведений о файловой системе компьютера. Для таких случаев в библиотеке .NET Framework имеется достаточное количество классов, которые можно использовать как в локальных, так и в Web-приложениях. Познакомимся с ними.

Работа с файловой системой

Простейшим уровнем файловых операций является получение информации о файлах и каталогах, смена каталогов, получение сведений о размерности файлов, времени создания, режиме доступа, удаления, переименования, копирования и т.д. без их открытия. Для этого имеются следующие библиотечные классы пространства имен System.IO ( input, output ) сборки mscorlib.dll:

  1. Directory, File - предоставляют статические методы для сбора информации о файлах и каталогах локального компьютера или сервера
  2. DriveInfo, DirectoryInfo, FileInfo - предоставляют методы и свойства экземпляров для тех же целей

Вторая группа классов работает быстрее, поскольку выполняет проверку безопасности только однажды, при создании экземпляра класса. Первая группа не требует создания экземпляров, но выполняет проверку безопасности при каждом вызове метода.

Классы Directory и File

Эти классы имеют статические методы, приведенные в таблицах. Если есть методы чтения Get, то есть и методы установки Set, которые в таблице не указаны.

Некоторые методы класса Directory
Метод Описание
CreateDirectory() Создает каталог вместе с указанным путем
Delete() Удаляет пустой каталог, если второй необязательный параметр не указан или равен false. Если второй параметр указан и равен true, то удаляет каталог со всем содержимым
Exists() Возвращает флаг существования каталога
GetCreationTime(), GetLastAccessTime(), GetLastWriteTime() Возвращают структуру DateTime, которая содержит время создания каталога, время последнего чтения или записи
GetDirectories(), GetFiles(), GetLogicalDrives() Возвращает массив строк, по одной на каждый подкаталог, файл или устройство в указанном каталоге (в зависимости от используемого метода). Методы могут принимать второй параметр, задающий фильтр поиска (например, My*.txt; My???.*; *My.exe; ...)
GetParent() Анализирует переданную строку и возвращает имя родительского каталога
GetCurrentDirectory() Возвращает текущий каталог с полным путем
Move() Принимает два строки - исходный каталог и целевой каталог с полными путями. Перемещает исходный каталог в указанное место в пределах одного дискового устройства (иначе, - копирует)
GetAccessControl() Возвращает объект со списком контроля доступа Windows
Некоторые методы класса File
Метод Описание
Copy() Копирует один файл в другой с возможной заменой существующего файла (если задан третий необязательный параметр true )
Delete() Удаляет указанный файл, но не возбуждает исключение, если файл не найден
Exists() Проверяет существование файла и возвращает флаг
GetAttributes() Возвращает атрибуты указанного файла
GetCreationTime(), GetLastAccessTime(), GetLastWriteTime() Возвращают структуру DateTime, которая содержит время создания файла, время последнего чтения или записи
Move() Перемещает или переименовывает файлы
Create(), CreateText() Создают файл
Open(), OpenText(), OpenRead(), OpenWrite() Открывают файл, открывают только для чтения, открывают только для записи
ReadAllText(), ReadAllLines(), ReadAllBytes() Читают весь файл и возвращают его содержимое в виде строки, массива строк или массива байт
WriteAllText(), WriteAllLines(), WriteAllBytes() Пишут весь файл за один прием, использую принятую строку, массив строк или массив байт. Если файл существует, то он перезаписывается
GetAccessControl() Возвращает объект со списком контроля доступа Windows
< Лекция 15 || Лекция 16 || Лекция 17 >
Илья Онучин
Илья Онучин
Россия
Igor Chelyadinski
Igor Chelyadinski
Беларусь, Минск, №54, 2013