Architecture Net



         

Обработка файлов - часть 2


Статические методы этого класса позволяют изменять расширение файла или находить папку с временными файлами. Особенно полезен метод 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("");

CompEbook.ru Железо, дизайн, обучение и другие




Содержание  Назад