9_Работа с файловой системой
Урок 9 : Работа с файловой системой
В этой практике вы создадите каталог для данных программы, прочитаете и запишете обычный текст, поработаете с потоками и получите информацию о созданных файлах.
Теория
- Чем абсолютный путь отличается от относительного?
- Почему для построения пути лучше использовать
Path.Combine(), а не конкатенацию строк? - Как проверить существование каталога и создать его?
- Как получить список файлов в каталоге?
- Чем
File.WriteAllText()отличается отFile.AppendAllText()? - В чём разница между
File.ReadAllText()иFile.ReadAllLines()? - Для чего применяются
StreamWriterиStreamReader? - Зачем потоки помещают в конструкцию
using? - Как получить размер и расширение файла?
Практика
Откройте файл Lesson9.cs для выполнения заданий. Создавайте все файлы внутри каталога Data в текущей рабочей директории программы. После каждого задания проверяйте не только вывод консоли, но и содержимое созданных файлов.
Задания
Создайте метод CreateDataDirectory(), который:
- получает текущую рабочую директорию;
- строит путь к вложенному каталогу
DataчерезPath.Combine(); - создаёт каталог, если он отсутствует;
- возвращает путь к каталогу в виде
string.
Вызовите метод и выведите полученный путь в консоль.
Запросите у пользователя:
- имя игрока;
- уровень;
- количество очков.
Запишите данные в файл player.txt:
Имя: Alex
Уровень: 5
Очки: 1250
После записи:
- проверьте существование файла через
File.Exists(); - прочитайте файл через
File.ReadAllText(); - выведите содержимое в консоль.
Создайте список из пяти строк с названиями игровых предметов.
Запишите предметы в items.txt с помощью StreamWriter: каждый предмет должен находиться на отдельной строке.
Затем прочитайте файл через StreamReader построчно и выведите строки в формате:
1. Меч
2. Щит
3. Зелье
Для обоих потоков используйте конструкцию using.
Напишите метод PrintFiles(string directoryPath), который выводит информацию обо всех файлах каталога Data:
- имя файла;
- расширение;
- размер в байтах.
Используйте Directory.GetFiles(), методы класса Path и класс FileInfo.
Пример:
player.txt | .txt | 52 байт
items.txt | .txt | 68 байт
Объедините предыдущие задания в программу с меню:
1. Записать данные игрока
2. Прочитать данные игрока
3. Записать список предметов
4. Прочитать список предметов
5. Показать файлы каталога Data
6. Удалить выбранный файл
0. Выход
Требования:
- меню работает в цикле до выбора пункта
0; - пути создаются только через
Path.Combine(); - каталог
Dataсоздаётся при запуске; - перед чтением и удалением программа проверяет существование файла;
- перед удалением программа запрашивает подтверждение;
- после каждой операции выводится сообщение о результате.