на начало
На главную страницу
Форум   

Статья :: Обработка файлов


Обработка файлов

Каркас содержит два класса File (Файл) и File Info, которые очень полезны для работы с файлами. Класс File (Файл) предоставляет основные функциональные возможности для обработки файлов в дополнение к операциям чтения и записи. Поскольку класс File (Файл) содержит только статические члены, имя файла необходимо в качестве параметра. Класс Filelnfo имеет конструктор, который создает объект, представляющий файл. Затем используются методы для обработки этого определенного файла.
Методы класса File (Файл) всегда выполняют проверку защиты. Если необходимо непрерывно обращаться к определенному файлу, можно использовать класс Filelnfo, так как в этом классе проверка защиты производится только однажды — в конструкторе. Защита обсуждается более подробно в главе 13 "Защита".

Класс File (Файл)

Класс File (Файл) содержит методы для создания и открытия файлов, которые возвращают объекты FileStream, StreamWriter или StreamReader, производящие фактическое чтение и запись. Перегруженный метод Create (Создать) возвращает объект FileStream. Метод CreateText возвращает StreamWriter. Перегруженный метод Open (Открыть) в зависимости от передаваемых параметров может создавать новый файл или открывать существующий для чтения или записи. Возвращаемый объект — объект FileStream. Метод OpenText возвращает StreamReader. Метод OpenRead возвращает объект FileStream. Метод OpenWrite возвращает объект типа FileStream.
Класс File (Файл) содержит также методы копирования, удаления и перемещения файлов. К тому же, мы можем проверить существование файла. Нижеперечисленные атрибуты файла можно прочитать и изменить:

  • время создания;
  • время последнего обращения;
  • последнее время записи;
  • архивный, скрытый, обычный, системный или временный;
  • сжатый, зашифрованный;
  • только для чтения;
  • файл — это каталог?
  • Класс Path (Путь)

Очень часто имя файла, передаваемое в качестве входного параметра, должно быть полным путем к файлу. Но нередко удобнее было бы обрабатывать только части пути. Довольно просто это можно сделать с помощью статических методов класса Path (Путь). Класс Path (Путь) содержит статические поля, указывающие на различные зависимые от платформы части имени пути, такие как символы разделителя для каталогов, путей и томов, а также запрещенные символы в имени файла и пути доступа к нему.
Статические методы этого класса позволяют изменять расширение файла или находить папку с временными файлами. Особенно полезен метод GetFullPath. Ему можно передать относительный путь, например \foo.txt, и он возвратит полный путь файла. Это очень полезно для класса File (Файл) или классов защиты, для которых требуется указывать полный путь к файлу.

Класс Filelnfo

Конструктор Filelnfo создает объект, который представляет дисковый файл. Конструктор принимает один параметр — строку, содержащую имя файла. Объект будет иметь свойства, отражающие свойства файла, такие как время создания, размер и полный путь к файлу. Класс содержит методы для создания и открытия файла, которые аналогичны методам класса File (Файл), но работают с конкретным экземпляром файла и поэтому не нуждаются в таком параметре, как имя файла. Класс Filelnf о также содержит методы, позволяющие перемещать и копировать файлы.

Пример File (Файл)

Пример File (Файл) в папке FilelO иллюстрирует использование классов Filelnfo и File (Файл). В этом примере используется статический метод Delete (Удалить) класса File (Файл) для удаления указанного файла. Затем статический метод CreateText создает новый файл и возвращает экземпляр StreamWriter, который используется для записи текста в файл. Далее поток закрывается, и статический метод Move (Переслать) переименовывает файл. Потом создается экземпляр Filelnfo, который будет представлять этот переименованный файл. Полное имя файла, размер и дата его создания выводятся на консоль. Файл открывается как текстовый, после чего используется экземпляр streamReader, чтобы прочитать и вывести на консоль содержимое файла.

File::Delete("file2.txt"); // Удалить файл "file2.txt"
StreamWriter *sw =
System::IO::File::CreateText("file.txt");
sw->Write ("The time has come the Walrus said, "); // Поговорить...
sw->WriteLine("to talk of many things.");
sw->Write("Of shoes, and ships, and sealing wax, "); // о ботинках, и судах, и сургуче
sw->WriteLine("of cabbages and kings."); // капусте и о королях
sw->Write("And why the sea is boiling hot, "); // И почему
// море кипит
sw->WriteLine("and whether pigs have wings."); // и имеют ли
// свиньи крылья.
sw->Close();
File::Move("file.txt", "file2.txt");
//Файл:: Переслать ("file.txt", "file2.txt");
Filelnfo *filelnfo = new Filelnfo("file2.txt");
Console::WriteLine(
"File {0} is {1} bytes in length, created on {2}",
// "Файл {0} - {1} байтов, создан {2} ",
file!nfo->FullName,
_box(file!nfo->Length), // Длина
_box(file!nfo->CreationTime));
Console::WriteLine("");
StreamReader *sr = file!nfo->OpenText();
String *s = sr->ReadLine();
// Строка
while (s != 0)
// пока (s != 0)
{
Console::WriteLine(s);
s = sr->ReadLine();
}
sr->Close();
Console::WriteLine("");


Обработка файлов

страницы в данном разделе 
Глава 8. Классы каркаса .NET Framework Классы каркаса .NET Framework
Метаданные и отражение Класс туре (Тип)
Динамическое связывание Ввод и вывод в .NЕТ
Потоковые классы Примитивные типы данных и потоки
TextReader И TextWriter Обработка файлов
Сериализация, или преобразование в последовательную форму Объекты сериализации
ISerializable Модель приложений .NET
Поток Изоляция потоков
Синхронизация коллекций Контекст
Заместители и заглушки ContextBoundObject
Изоляция приложений Прикладная область
Прикладные области и сборки Класс AppDomain (Прикладная область)
События AppDomain (Прикладная область) Пример AppDomain (Прикладная область)
Маршализация, прикладные области и контексты Асинхронное программирование
Асинхронные шаблоны проектирования lAsyncResult
Использование делегатов в асинхронном программировании Организация поточной обработки с параметрами
Удаленный доступ Краткий обзор удаленного доступа
Удаленные объекты Активация
Пример удаленного объекта Пример программы, реализующей удаленный доступ
Метаданные и удаленный доступ Конфигурационные файлы удаленного доступа
Программируемые атрибуты Использование самостоятельно созданного атрибута
Определение класса атрибута Определение базового класса
Сборка мусора Уничтожение объектов
Неуправляемые ресурсы и освобождение ранее выделенной области памяти Поколения
Завершение и раскручивание стека Управление сборкой мусора с помощью класса сборщика мусора GC
Программа-пример Резюме


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста