Поделиться через


Основы файлового ввода-вывода и файловой системы в .NET Framework

Обновлен: Ноябрь 2007

Пространство имен System.IO содержит классы File и Directory, обеспечивающие управление файлами и каталогами в .NET Framework. Поскольку методы этих объектов являются статическими или общими членами, их можно использовать непосредственно без предварительного создания экземпляра класса. С этими классами связаны классы FileInfo и DirectoryInfo, которые знакомы пользователям объекта My. Чтобы использовать эти классы, необходимо применять полные имена, либо импортировать соответствующие пространства имен, добавляя операторы Imports в начало кода. Дополнительные сведения см. в разделе Оператор Imports (пространство имен .NET и тип).

Определение потока

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

Курсор показывает текущую позицию в filestream.

Потоковые операции

Данные, содержащиеся в потоке, могут быть взяты из памяти, файла или сокета TCP/IP. К потокам можно применять следующие основные операции.

  • Чтение. При чтении из потока можно передавать данные из потока в структуру данных, например строку или массив байтов.

  • Запись. При записи в поток можно передавать данные из источника данных в поток.

  • Поиск. Можно запрашивать и изменять положение в потоке.

Дополнительные сведения см. в разделе Составление потоков.

Типы потоков

В .NET Framework поток представляется классом Stream, который образует абстрактный класс для всех других потоков. Непосредственно создать экземпляр класса Stream нельзя, для этого нужно использовать один из классов, реализующих его.

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

В следующей таблице перечислены задачи, которые обычно выполняются с потоком.

To

См. в разделе

Чтение и запись в файл данных

Практическое руководство. Считывание из нового файла данных и запись в этот файл

Чтение из XML-файла

Типичные задачи XmlReader

Создание модуля записи в поток для записи текста в файл

Создание класса Writer

Чтение текста из файла

Практическое руководство. Считывание текста из файла

Запись текста в файл

Практическое руководство. Запись текста в файл

Чтение символов из строки

Практическое руководство. Считывание символов из строки

Запись символов в строку

Практическое руководство. Запись символов в строку

Шифрование данных

Шифрование данных

Расшифровка данных

Расшифровка данных

Доступ к файлам и атрибуты

Созданием, открытием и совместным использованием файлов можно управлять с помощью перечислений FileAccessFileMode и FileShare, которые содержат флаги, используемые в конструкторах класса FileStream. Например, при открытии или создании нового объекта FileStream перечисление FileMode позволяет указать, открывается ли файл для добавления данных, создается ли новый файл, если указанный файл не существует, будет ли перезаписан существующий файл и т. д.

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

В следующей таблице перечислены задачи, касающиеся доступа к файлу и атрибутов файла.

To

См. раздел

Открытие и добавление текста в файл журнала

Практическое руководство. Открытие файла журнала и добавление в него данных

Определение атрибутов файла

FileAttributes

Разрешения файла

Класс FileIOPermission можно использовать для управления доступом к файлам и каталогам. Это особенно важно для разработчиков, работающих с веб-формами, которые по умолчанию выполняются в контексте специальной локальной учетной записи пользователя ASPNET, создаваемой при установке ASP.NET и .NET Framework. Когда такие приложения запрашивает доступ к ресурсу, учетная запись ASPNET имеет ограниченные разрешения, что может помешать выполнению действий, таких как запись в файл из веб-приложения. Дополнительные сведения см. в разделах Разрешения безопасности, Запрос разрешений и класс FileIOPermission.

В следующей таблице перечислены задачи, касающиеся разрешений файла.

To

См. в разделе

Запрос минимальных разрешений

Практическое руководство. Запрос разрешения на доступ к неуправляемому коду

Запрос дополнительных разрешений

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

Отказ в разрешениях

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

Запрос встроенных разрешений

Практическое руководство. Запрос разрешения для именованного набора разрешений

Запрос разрешений в XML-кодировке

Запрос разрешений в XML-кодировке

Изолированное хранилище файлов

Изолированное хранилище используется для устранения проблем, возникающих при работе с файлами, когда у пользователя или кода могут отсутствовать необходимые разрешения. Изолированное хранилище назначает каждому пользователю секцию данных, которая может содержать одно или несколько хранилищ. Хранилища могут быть изолированы друг от друга пользователем и сборкой. Только пользователь и сборка, которые создали хранилище, имеют доступ к нему. Хранилище действует в качестве полной виртуальной файловой системы — в пределах одного хранилища можно создавать и управлять каталогами и файлами.

В следующей таблице перечислены типичные задачи, связанные с изолированным хранилищем файлов.

To

См. в разделе

Создание изолированного хранилища

Практическое руководство. Получение хранилищ для изолированного хранения

Перечисление изолированных хранилищ

Практическое руководство. Перечисление хранилищ для изолированного хранилища

Удаление изолированного хранилища

Практическое руководство. Удаление хранилищ из области изолированного хранения

Создание файла или каталога в изолированном хранилище

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

Поиск файла в изолированном хранилище

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

Чтение и запись файла в изолированном хранилище

Практическое руководство. Считывание из файлов и запись в файлы в изолированном хранилище

Удаление файла или каталога в изолированном хранилище

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

События файла

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

To

См. в разделе

Создание обработчиков событий файловой системы

Практическое руководство. Создание обработчиков событий файловой системы

Настройка экземпляра компонента FileSystemWatcher

Практическое руководство. Настройка экземпляров компонента FileSystemWatcher

См. также

Основные понятия

Составление потоков

Основы файлового ввода-вывода

Асинхронный файловый ввод-вывод

Классы, используемые при файловом вводе-выводе в .NET Framework, и файловая система

Другие ресурсы

Изолированное хранилище