
- •11. Организация работы с файлами
- •11.1. Использование стандартных диалоговых окон открытия и сохранения файлов
- •11.2. Использование стандартного диалогового окна обзора папок
- •11.3. Использование класса System.Io.File для работы с файлами
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •11.4. Использование класса System.Io.Directory для работы с папками
- •If (Directory.Exists(currentDir)) // Если папка существует
- •If (Directory.Exists(sourceDir) & Directory.Exists(destDir) &
- •If (Directory.Exists(destDir)) // Если папка существует
- •11.5. Использование класса System.Io.Path для работы со строкой пути к папке или файлу
- •If (Path.HasExtension(path1))
- •If (!Path.HasExtension(path2))
- •If (!Path.IsPathRooted(path3))
- •11.6. Использование класса System.Io.FileInfo для работы с файлами
- •If (!fi1.Exists)
- •11.7. Использование класса System.Io.DirectoryInfo для работы с файлами и папками
- •If (cd.Exists) // Если заданная папка существует...
- •If (sd.Exists & dd.Exists & !md.Exists)
- •If (dd.Exists) // Если папка существует
- •11.8. Использование класса System.Io.DriveInfo для работы с дисками
- •11.9. Использование класса System.Io.FileStream для работы с файлами
- •If (fs.CanRead && fs.CanWrite)
- •11.10. Использование классов System.Io.StreamReader и System.Io.StreamWriter для работы с файлами
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()) != null) // Чтение строк из файла
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()) != null)
Console.WriteLine(line);
sr2.Close(); // Закрытие потока (файла)
File.Delete(path2); // Удаление скопированного файла
Console.WriteLine("Файл {0} был успешно удален.", path2);
Console.ReadLine();
}
}
/* Вывод:
Файл 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 для создания файла (в случае его отсутствия) и записи в него текста, затем для добавления дополнительного текст в этот файл, и далее для чтения текста из него. При этом в каждом случае перед началом операции файл открывается, а после нее закрывается.
using System;
using System.IO;
class TestAllText
{ public static void 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();
}
}
/* Вывод:
Hello and Welcome
Дополнительный текст
*/
Пример 11.6. Использование методов Exists, WriteAllLines, AppendAllText, ReadAllLines класса File для создания файла (в случае его отсутствия) и записи в него массива строк, затем для добавления дополнительного текст в этот файл, и далее для чтения строк из него. При этом в каждом случае перед началом операции файл открывается, а после нее закрывается.
using System;
using System.IO;
class TestAllLines
{ public static void Main()
{ string path = @"c:\temp\Test.txt";
string[] st = { "Hello", "and", "Welcome" };
// Однократная запись текста в файл.