Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Использование класса System::IO::Directory для работы с папками
(http://msdn.microsoft.com/ru-ru/library/system.io.directory.aspx)
Таблица 11.9. Основные методы класса Directory из пространства имен System::IO
Пример 11.9. Использование методов Exists, CreateDirectory, GetDirectories, GetFiles, Move, Delete класса Directory для определения факта существования папок, создания, переме-щения и удаления папок, а также вывода содержимого папки и подсчет папок и файлов в ней.
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ currentDir = "c:\\temp"; String^ sourceDir = currentDir + "\\Source"; String^ destDir = currentDir + "\\Destination"; String^ moveDir = destDir + "\\Source"; if (Directory::Exists(currentDir)) { // Если папка существует // Создание папок и файлов Directory::CreateDirectory(sourceDir); // Созание Directory::CreateDirectory(sourceDir + "\\Dir"); // новых Directory::CreateDirectory(destDir); // папок StreamWriter^ f1 = File::CreateText(sourceDir + "\\Test1.txt"); // Созание файла f1->WriteLine("Test 1"); // Запись в файл f1->Close(); // Закрытие файла StreamWriter^ f2 = File::CreateText(sourceDir + "\\Test2.txt"); // Созание файла f2->WriteLine("Test 2"); // Запись в файл f2->Close(); // Закрытие файла Console::WriteLine("Папки и файлы созданы."); } Console::ReadLine(); // Вывод содержимого папки и подсчет папок и файлов в ней Console::WriteLine("Содержимое папки {0} :", sourceDir); for each (String^ fName in Directory::GetDirectories(sourceDir)) Console::WriteLine(" {0}\t\t<папка>", fName); for each (String^ fName in Directory::GetFiles(sourceDir)) Console::WriteLine(" {0}", fName); Console::WriteLine("Итого: {0} папок и {1} файлов.", Directory::GetDirectories(sourceDir)->Length, Directory::GetFiles(sourceDir)->Length); Console::ReadLine(); if (Directory::Exists(sourceDir) & Directory::Exists(destDir) & !Directory::Exists(moveDir)) { Directory::Move(sourceDir, moveDir); // Перемещение папки Console::WriteLine("Папка {0} перемещена в {1} .", sourceDir, moveDir); } Console::ReadLine(); if (Directory::Exists(destDir)) { // Если папка существует Directory::Delete(destDir, true); // Удаление папки Console::WriteLine("Папка {0} со всем содержимым удалена.", destDir); } Console::ReadLine(); return 0; } /* Вывод: Папки и файлы созданы. Содержимое папки c:\temp\Source : c:\temp\Source\Dir <папка> c:\temp\Source\Test1.txt c:\temp\Source\Test2.txt Итого: 1 папок и 2 файлов. Папка c:\temp\Source перемещена в c:\temp\Destination\Source . Папка c:\temp\Destination со всем содержимым удалена. */
11.5. Использование класса System::IO::Path (http://msdn.microsoft.com/ru-ru/library/system.io.path.aspx)
Таблица 11.10. Основные поля и методы класса Path из пространства имен System::IO
Пример 11.10. Использование методов класса Path для получения информации о строке пути к папке или файлу.
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ path1 = "c:\\temp\\MyTest.txt"; String^ path2 = "c:\\temp\\MyTest"; String^ path3 = "temp"; String^ result; result = Path::ChangeExtension(path1, ".dat"); Console::WriteLine("В пути '{0}' расширение изменено на '{1}'.", path1, result); Console::WriteLine("Файл '{0}' находится в папке '{1}'.", Path::GetFileName(path1), Path::GetDirectoryName(path1)); if (Path::HasExtension(path1)) Console::WriteLine("{0} имеет расширение.", path1); if (!Path::HasExtension(path2)) Console::WriteLine("{0} не имеет расширения.", path2); if (!Path::IsPathRooted(path3)) Console::WriteLine("Строка {0} не содержит информации o " + "корне.", path3); Console::WriteLine("Полный путь к {0} - {1}.", path3, Path::GetFullPath(path3)); Console::WriteLine("{0} - местоположение временных файлов.", Path::GetTempPath()); Console::WriteLine("Файл {0} доступен для использования.", Path::GetTempFileName()); Console::ReadLine(); return 0; } /* Вывод: В пути 'c:\temp\MyTest.txt' расширение изменено на 'c:\temp\MyTest.dat'. Файл 'MyTest.txt' находится в папке 'c:\temp'. c:\temp\MyTest.txt имеет расширение. c:\temp\MyTest не имеет расширения. Строка temp не содержит информации о корне. Полный путь к temp - C:\Documents and Settings\Guest\Local Settings\Application Data\Temporary Projects\ConsoleApplication1 \bin\Debug\temp. C:\Documents and Settings\Guest\Local Settings\Temp\ - местоположение временных файлов. Файл C:\Documents and Settings\Guest\Local Settings\Temp\ tmp3D.tmp доступен для использования. */
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 225. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |