Лекция: Доступ к файлам. Файлы, потоки и операции чтения и записи. Работа с файлами и каталогами
Доступ к файлам
Пространство имен System.IO содержит обеспечение функционирования механизмов работы с файловой системой из ASP.NET страниц.
Файлы, потоки и операции чтения и записи
Перед тем как приступить к изучению классов в System. 10 и методов доступа к файлам, следует усвоить различия между файлами и потоками в ASP.NET.
В технических терминах файл — это набор данных, имеющий имя, расположенный в обособленном месте и записанный на неопределенный период времени. В отличие от файлов поток никак не связан с определенным именем, путем или местом нахождения. Потоки могут использоваться для чтения, записи файлов, находящихся в любом месте. поток — это способ доступа к любым данным, в том числе и к файлам. Когда вы открываете или читаете файлы, вы фактически используете для этого потоки. Класс потоков Stream является базовым для множества порожденных им классов.
Потоки используют для двоичного доступа.
при рассмотрении работы с ASP.NET, мы сосредоточимся в основном на доступе Unicode, работающим с символами и строками.
Среда.NET предоставляет нам для этих целей 2 объекта: TextReader и TextWriter.
существуют два независимых направления: потоки Stream и их подклассы для работы с двоичными данными; и классы TextReader и TextWriter со своими подклассами для доступа Unicode. B среде.NET их можно легко отличить друг от друга.
Отметим, что существуют также классы, осуществляющие преобразование между двоичными данными и данными Unicode. Немного позже мы рассмотрим два из них, использующиеся для ввода-вывода в ASP.NET — это классы StreamReader и StreamWriter.
Объекты потоков Stream осуществляют асинхронный доступ (asynchronous
access). Это значит, что во время проведения операций с файлом могут
продолжаться другие операции.
Полностью противоположен этому синхронный доступ (synchronous access). B этом режиме полное выполнение операций чтения-записи должно предшествовать началу выполнения последующих операций.
Работа с файлами и каталогами
Существует 4 основных объекта, на которых следует остановиться: объекты File и Directory, а также Filelnfo и Directorylnfo.
Первые 2 объекта обеспечивают методы создания, удаления и редактирования файлов и каталогов, последние же 2 позволяют изменять их атрибуты.
Атрибут | Значение |
Readonly | |
Hidden | |
System | |
Directory | |
Archive | |
Encrypted | |
i Normal | |
'Temporary | |
SparseFile | |
ReparsePoint | |
Compressed | |
Offline | |
NotContentlndexed |
Общее значение для файла представляет сумму значений всех его атрибутов.
Конечно, значения всех атрибутов трудно постоянно хранить в памяти, гораздо Легче использовать их имена, объединенные логическим оператором BitOr
. Что же сделать, чтобы получить более обширную информацию обо всех файлах в каталоге? Объект Directorylnf о предлагает два метода, возвращающих список файлов и каталогов: GetFiles и GetDirectories.
Листинг 13.2. Просмотр файлов и подкаталогов данного каталога
4: dim dir as new DirectoryInfo(Server.HapPath ("/days"})
6:
7: DataGrid1.DataSource = dir.GetFiles("*.*")
8: DataGridl.DataBind()
9:
10: DataGrid2.DataSource = dir.GetDirectories
11; DataGrid2.DataBind()