Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
c#_Presentation_11.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
740.35 Кб
Скачать

11.3. Использование класса System.Io.File для работы с файлами

(http://msdn.microsoft.com/ru-ru/library/system.io.file.aspx)

Таблица 11.5. Основные методы класса File из пространства имен System.IO

Имя

Описание

AppendAllLines(sf,s);

AppendAllLines(sf,s,cd);

Добавляет строки (s) в файл (sf), используя заданную кодировку (cd), а затем закрывает файл. Если файл не существует, он будет создан. Варианты кодировок представлены в таблице 11.6.

AppendAllText(sf,s);

AppendAllText(sf,s,cd);

Открывает файл (sf), добавляет в него указанную строку (s), используя заданную кодировку (cd), а затем закрывает файл. Если файл не существует, он будет создан. Варианты кодировок представлены в таблице 11.6.

AppendText(sf);

Добавляет в существующий файл (sf, объект StreamWriter) текст в кодировке UTF-8.

Copy(sf1,sf2);

Copy(sf1,sf2,w);

Копирует существующий файл (sf1) в новый файл (sf2) с возможностью перезаписи (w) или без нее. При возможной перезаписи аргумент w равен true, если конечный файл можно перезаписать, в противном случае – false.

Create(sf);

Create(sf,bf);

Create(sf,bf,opt);

Создает новый файл (sf, объект FileStream) для чтения и записи с заданными размером буфера (bf) и значением opt из перечисления System.IO.FileOptions (таблица 11.8), определяющим, как создавать или перезаписывать файл. При этом по умолчанию используются следующие значения перечислений (таблица 11.8): FileMode.Create, FileAccess.ReadWrite и FileShare.None .

CreateText(sf);

Создает или открывает файл (sf, объект StreamWriter) для записи текста в кодировке UTF-8.

Delete(sf);

Удаляет указанный файл (sf). Если указанный файл не существует, исключение не создается.

Exists(sf);

Определяет, существует ли заданный файл (sf).

GetAttributes(sf);

Получает атрибуты заданного файла (sf). Атрибуты задаются перечислением FileAttributes (таблица 11.7)

GetCreationTime(sf);

Возвращает дату и время создания заданного файла или каталога (sf).

GetLastAccessTime(sf);

Возвращает время и дату последнего обращения к указанному файлу или каталогу (sf).

GetLastWriteTime(sf);

Возвращает время и дату последней операции записи в указанный файл или каталог (sf).

Move(sf1,sf2);

Перемещает заданный файл (sf1) в новое место (sf2) и разрешает его переименование.

Open(sf,md);

Open(sf,md,access);

Open(sf,md,access,shr);

Открывает заданный файл (sf, объект FileStream). Другие аргументы метода определяют:

md – режим доступа к файлу (константа из перечисле-ния FileMode, таблица 11.8);

access – тип доступа к файлу (константа из перечисле-ния FileAccess, таблица 11.8);

shr – тип разрешения доступа к файлу другим процес-сам (константа из перечисления FileShare, таблица 11.8).

OpenRead(sf);

Открывает для чтения существующий файл (sf, объект FileStream). При этом по умолчанию используются следующие значения перечислений (таблица 11.8): FileMode.Open , FileAccess.Read и FileShare.Read .

OpenText(sf);

Открывает для чтения существующий файл (sf, объект StreamWriter), содержащий текст в кодировке UTF-8.

OpenWrite(sf);

Открывает для записи существующий файл (sf, объект FileStream). При этом по умолчанию используются следующие значения перечислений (таблица 11.8): FileMode.OpenOrCreate , FileAccess.Write и FileShare.None .

ReadAllBytes(sf);

Открывает двоичный файл (sf), считывает содержимое файла в массив байтов, а затем закрывает файл.

ReadAllLines(sf);

ReadAllLines(sf,cd);

Открывает текстовый файл (sf), считывает все строки файла с заданной кодировкой (cd) в массив строк, а затем закрывает файл. Варианты кодировок представлены в таблице 11.6.

ReadAllText(sf);

ReadAllText(sf,cd);

Открывает текстовый файл (sf), считывает все строки файла с заданной кодировкой (cd) в строку, а затем закрывает файл. Варианты кодировок представлены в таблице 11.6.

ReadLines(sf);

ReadLines(sf,cd);

Считывает строки текстового файла (sf) с заданной кодировкой (cd) в коллекцию строк.

Replace(sf1,sf2,sf3);

Заменяет содержимым одного файла (sf1) содержимое другого файла (sf2), удаляя исходный файл (sf2) и создавая резервную копию (sf3) замененного файла.

SetAttributes(sf,attr);

Устанавливает атрибуты (attr), задаваемые побитовым сочетанием значений перечисления FileAttributes (таблица 11.7), для указанного файла (sf).

SetCreationTime(sf,dt);

Устанавливает дату и время (dt) создания заданного файла (sf).

SetLastAccessTime(sf,dt);

Устанавливаются дата и время (dt) последнего доступа к заданному файлу (sf).

SetLastWriteTime(sf,dt);

Устанавливаются дата и время (dt) последней операции записи в заданный файл (sf).

WriteAllBytes(sf,arB);

Создает новый файл (sf), записывает в него указанный массив байтов (arB), а затем закрывает файл. Если такой файл уже существует, он будет перезаписан.

WriteAllLines(sf,arS);

WriteAllLines(sf,arS,cd);

WriteAllLines(sf,cols);

WriteAllLines(sf,cols,cd);

Создает новый файл (sf), записывает в него указанный массив (arS) или коллекцию (cols) строк в заданной кодировке (cd), а затем закрывает файл. Если такой файл уже существует, он будет перезаписан. Варианты кодировок представлены в таблице 11.6.

WriteAllText(sf,s);

WriteAllText(sf,s,cd);

Создает новый файл (sf), записывает в него строку (s) в заданной кодировке (cd), а затем закрывает файл. Если такой файл уже существует, он будет перезаписан. Варианты кодировок представлены в таблице 11.6.

Таблица 11.6. Кодировки, поддерживаемые платформой .NET Framework (свойства класса System.Text.Encoding)

Имя

Описание

ASCII

Получает кодировку для набора символов ASCII (7-разрядных).

BigEndianUnicode

Получает кодировку для формата UTF-16 с обратным порядком байтов.

Default

Получает кодировку для текущей кодовой страницы ANSI операционной системы.

Unicode

Получает кодировку для формата UTF-16 с прямым порядком байтов.

UTF32

Получает кодировку для формата UTF-32 с прямым порядком байтов.

UTF7

Получает кодировку для формата UTF-7.

UTF8

Получает кодировку для формата UTF-8 (используется по умолчанию).

Таблица 11.7. Значения (типа Long) перечисления FlagsAttribute класса System.IO, используемые для задания атрибутов файлов и каталогов

Значение

Описание

ReadOnly

Файл доступен только для чтения.

Hidden

Файл скрытый и поэтому не включается в обычный список каталога.

System

Файл является системным. Этот файл является частью операционной системы или используется исключительно операционной системой.

Directory

Файл представляет собой каталог.

Archive

Файл является архивным. Приложения используют этот атрибут, чтобы пометить файлы для резервного копирования или удаления.

Device

Зарезервировано для использования в будущем.

Normal

Файл обычный, и другие атрибуты не установлены. Этот атрибут действителен, только если используется отдельно.

Temporary

Файл является временным. Файловая система для ускорения доступа будет пытаться держать все данные в памяти, а не сбрасывать их назад в массовую память. Приложение должно стереть временный файл сразу после того, как он станет ненужным.

SparseFile

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

ReparsePoint

Файл содержит точку повторной обработки, блокирующую определяемые пользователем данные, связанные с файлом или каталогом.

Compressed

Файл является сжатым.

Offline

Файл находится в автономном режиме. Данные этого файла недоступны непосредственно.

NotContentIndexed

Файл не будет индексироваться службой индексирования содержимого операционной системы.

Encrypted

Зашифрованный файл или каталог. Для файла это означает, что все данные в файле зашифрованы, а для каталога – что шифрование производится по умолчанию для вновь создаваемых файлов и каталогов.

Таблица 11.8. Значения перечислений FileMode, FileAccess, FileShare, FileOptions из пространства имен System.IO, используемые различными классами для настройки поведения файлов при их создании и открытии

Значение

Описание

FileMode

CreateNew

Создание нового файла. Если файл уже существует, фиксируется ошибка. Для создания файла требуется разрешение доступа к нему для записи.

Create

Создание нового файла. Если файл уже существует, он будет переписан. Если же файл уже существует, но является скрытым, фиксируется ошибка. Для создания файла требуется разрешение доступак нему для записи.

Open

Открытие существующего файла. Если файл не существует, фиксируется ошибка. Возможность открытия файла зависит от значения, задаваемого перечислением FileAccess.

OpenOrCreate

Открытие файла, если он существует, в противном случае – создание нового файла. Для открытия или создания файла требуется разрешение соответствующего доступа к нему.

Truncate

Открытие существующего файла с усечением его размера до нуля байтов. Попытка выполнить чтение из файла вызывает ошибку. Для открытия файла требуется разрешение доступа к нему для записи.

Append

Открытие файла для его дополнения, если он существует, либо создание нового файла. Попытка поиска положения перед концом файла или попытка чтения из файла вызывает ошибку. Значение FileMode.Append можно использовать только вместе с FileAccess.Write.

FileAccess

Это перечисление имеет атрибут FlagsAttribute, поддерживающий побитовое соединение составляющих его значений.

Read

Доступ только для чтения файла.

Write

Доступ только для записи в файл.

ReadWrite

Доступ для чтения и записи файла.

FileShare

Это перечисление имеет атрибут FlagsAttribute, поддерживающий побитовое соединение составляющих его значений.

None

Запрещает совместное использование текущего файла. Любой запрос на открытие файла не выполняется до тех пор, пока файл не будет закрыт.

Read

Разрешает последующее открытие файла для чтения. Однако даже при этом для доступа к файлу могут потребоваться дополнительные разрешения.

Write

Разрешает последующее открытие файла для записи. Однако даже при этом для доступа к файлу могут потребоваться дополнительные разрешения.

ReadWrite

Разрешает последующее открытие файла для чтения или записи. Однако даже при этом для доступа к файлу могут потребоваться дополнительные разрешения.

Delete

Разрешает последующее удаление файла.

FileOptions

Это перечисление имеет атрибут FlagsAttribute, поддерживающий побитовое соединение составляющих его значений.

None

Указывает, что при создании объекта FileStream не должны использоваться дополнительные параметры.

WriteThrough

Указывает, что запись в системе должна выполняться через любой промежуточный кэш и проходить напрямую на диск.

Asynchronous

Указывает, что файл может использоваться для асинхронного чтения и записи.

RandomAccess

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

DeleteOnClose

Указывает, что файл автоматически удаляется после использования.

SequentialScan

Указывает, что доступ к файлу осуществляется последовательно от начала к концу.

Encrypted

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

Пример 11.4. Использование методов Exists, CreateText, AppendText, OpenText, Copy, Delete класса File для создания и открытия текстового файла, записи в него, затем – для добавления в него, далее – для чтения из него, и, наконец, копирования и удаления файла.

using System;

using System.IO;

class TestFileText

{ public static void Main()

{ string path = @"c:\temp\Test.txt";

string line = "Test";

// Создание файла для записи, если он не существовал.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]