Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Использование класса System::IO::File для работы с файлами
(http://msdn.microsoft.com/ru-ru/library/system.io.file.aspx)
Таблица 11.5. Основные методы класса File из пространства имен System::IO
Таблица 11.6. Кодировки, поддерживаемые платформой .NET Framework
Таблица 11.7. Значения (типа Long) перечисленияFlagsAttribute класса System::IO, используемые для задания атрибутов файлов и каталогов
Таблица 11.8. Значения перечислений FileMode, FileAccess, FileShare, FileOptions
Пример 11.4. Использование методов Exists, CreateText, AppendText, OpenText, Copy, Delete класса File для создания и открытия текстового файла, записи в него, затем – для добавления в него, далее – для чтения из него, и, наконец, копирования и удаления файла.
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ path = "c:\\temp\\Test.txt"; String^ line = "Test"; // Создание файла для записи, если он не существовал. if (!File::Exists(path)) { StreamWriter^ sw = File::CreateText(path); sw->WriteLine("Hello"); // Запись в файл sw->Close(); // Закрытие файла } // Открытие файла для дозаписи. StreamWriter^ sa = File::AppendText(path); for (int i = 1; i <= 3; i++) sa->WriteLine("{0} {1}", line, i); // Запись в файл sa->Close(); // Закрытие файла // Открытие файла для чтения. StreamReader^ sr = File::OpenText(path); Console::WriteLine("Файл {0} содержит:", path); while (line = sr->ReadLine()) // Чтение строк из файла Console::WriteLine(line); // Вывод считанных строк sr->Close(); // Закрытие файла Console::ReadLine(); String^ path2 = "c:\\temp\\Test2.txt"; File::Copy(path, path2); // Копирование файла Console::WriteLine("Файл {0} был скопирован в {1}.", path, path2); // Открытие нового файла для чтения. StreamReader^ sr2 = File::OpenText(path2); Console::WriteLine("Файл {0} содержит:", path2); // Чтение строк из скопированного файла и вывод их на экран while (line = sr2->ReadLine()) // Чтение строк из файла Console::WriteLine(line); // Вывод считанных строк sr2->Close(); // Закрытие потока (файла) File::Delete(path2); // Удаление скопированного файла Console::WriteLine("Файл {0} был успешно удален.", path2); Console::ReadLine(); return 0; } /* Вывод: Файл c:\temp\Test.txt содержит: Hello Test 1 Test 2 Test 3 Файл c:\temp\Test.txt был скопирован в c:\temp\Test2.txt. Файл c:\temp\Test2.txt содержит: Hello Test 1 Test 2 Test 3 Файл c:\temp\Test2.txt был успешно удален. */
Пример 11.5. Использование методов Exists, WriteAllText, AppendAllText, ReadAllText класса File для создания файла (в случае его отсутствия) и записи в него текста, затем для добавления дополнительного текст в этот файл, и далее для чтения текста из него. При этом в каждом случае перед началом операции файл открывается, а после нее закрывается.
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ path = "c:\\temp\\Test.txt"; String^ st = "Hello and Welcome\r\n"; // Однократная запись текста в файл. if (!File::Exists(path)) File::WriteAllText(path, st); // Создание файла и запись текста в него. // Многократное добавление текста в файл. st = "Дополнительный текст\r\n"; // Открытие файла и добавление текста в него. File::AppendAllText(path, st); // Открытие файла и чтение текста из него. st = File::ReadAllText(path); Console::WriteLine(st); // Вывод считанного текста на экран. Console::ReadLine(); return 0; } /* Вывод: Hello and Welcome Дополнительный текст */
Пример 11.6. Использование методов Exists, WriteAllLines, AppendAllText, ReadAllLines класса File для создания файла (в случае его отсутствия) и записи в него массива строк, затем для добавления дополнительного текст в этот файл, и далее для чтения строк из него. При этом в каждом случае перед началом операции файл открывается, а после нее закрывается.
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ path = "c:\\temp\\Test.txt"; array<String^>^ st = { "Hello", "and", "Welcome" }; // Однократная запись текста в файл. if (!File::Exists(path)) File::WriteAllLines(path, st); // Создание файла и запись строк в него. // Открытие файла и добавление текста в него. String^ AppSt = "Дополнительный текст\r\n"; File::AppendAllText(path, AppSt); // Открытие файла и чтение строк из него. st = File::ReadAllLines(path); for each (String^ s in st) Console::WriteLine(s); // Вывод считанного текста на экран. Console::ReadLine(); return 0; } /* Вывод: Hello and Welcome Дополнительный текст */
Пример 11.7. Использование методов Exists, Create, GetAttributes, SetAttributes класса File для создания файла (в случае его отсутствия), а затем определения и установки атрибута этого файла (последовательные установка и снятие атрибута Hidden при каждом запуске).
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ path = "c:\\temp\\Test.txt"; // Создание файла, если он не существует if (!File::Exists(path)) { File::Create(path); Console::WriteLine("Создан файл {0} .", path); } if ((File::GetAttributes(path) & FileAttributes::Hidden) == FileAttributes::Hidden) { // Если файл скрытый // Сделать файл нескрытым File::SetAttributes(path, File::GetAttributes(path) & ~FileAttributes::Hidden); // Снять атрибут Console::WriteLine("Файл {0} больше не скрытый.", path); } else { // Сделать файл скрытым File::SetAttributes(path, File::GetAttributes(path) | FileAttributes::Hidden); // Установить атрибут Console::WriteLine("Файл {0} стал скрытым.", path); } Console::ReadLine(); return 0; } /* Вывод: Создан файл c:\temp\Test.txt . Файл c:\temp\Test.txt стал скрытым. Или Файл c:\temp\Test.txt больше не скрытый. */
Пример 11.8. Использование методов Exists, CreateText, GetCreationTime, GetLastWriteTime, GetLastAccessTime, GetAttributes класса File для создания файла (в случае его отсутствия), а затем установки и определения свойств этого файла.
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ path = "c:\\temp\\Test.txt"; if (!File::Exists(path)) { // Создание файла StreamWriter^ sw = File::CreateText(path); sw->Close(); Console::WriteLine("Создан файл {0} .", path); } // Изменение времени создания файла. File::SetCreationTime(path, DateTime(2010,3,30)); // Изменение времени последней записи в файл. File::SetLastWriteTime(path, DateTime(2010,4,29)); // Изменение времени последнего доступа к файлу. File::SetLastAccessTime(path, DateTime(2010,5,14)); Console::WriteLine("Свойства файла изменены."); // Получение времени создания файла. DateTime dt = File::GetCreationTime(path); Console::WriteLine("Время создания файла {0}.", dt); // Получение времени последней записи в файл. dt = File::GetLastWriteTime(path); Console::WriteLine("Время последней записи в файл {0}.", dt); // Получение времени последнего доступа к файлу. dt = File::GetLastAccessTime(path); Console::WriteLine("Время последнего доступа к файлу {0}.", dt); // Обновление времени создания файла. File::SetCreationTime(path, DateTime::Now); // Обновление времени последней записи в файл. File::SetLastWriteTime(path, DateTime::Now); // Обновление времени последнего доступа к файлу. File::SetLastAccessTime(path, DateTime::Now); Console::WriteLine("Свойства файла обновлены."); // Получение времени создания файла. dt = File::GetCreationTime(path); Console::WriteLine("Время создания файла {0}.", dt); // Получение времени последней записи в файл. dt = File::GetLastWriteTime(path); Console::WriteLine("Время последней записи в файл {0}.", dt); // Получение времени последнего доступа к файлу. dt = File::GetLastAccessTime(path); Console::WriteLine("Время последнего доступа к файлу {0}.", dt); Console::ReadLine(); return 0; } /* Вывод: Создан файл c:\temp\Test.txt . Свойства файла изменены. Время создания файла 30.03.2010 0:00:00. Время последней записи в файл 29.04.2010 0:00:00. Время последнего доступа к файлу 14.05.2010 0:00:00. Свойства файла обновлены. Время создания файла 22.09.2012 10:42:36. Время последней записи в файл 22.09.2012 10:42:36. Время последнего доступа к файлу 22.09.2012 10:42:36. */
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 234. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |