Работа с файлами в C# — практическое руководство
Работа с файлами в C# — практическое руководство
В C# и .NET работа с файлами — распространённая задача. Будь то проверка наличия файла, чтение его содержимого или управление копиями, класс System.IO.File предлагает прямые, потокобезопасные методы. Ниже вы найдёте краткие объяснения и пример кода, следующего лучшим практикам и официальным рекомендациям Microsoft.
Базовые файловые действия
- Чтение — извлечение данных из существующего файла.
- Запись — полная перезапись файла новым содержимым (поведение по умолчанию).
- Дозапись — добавление данных в конец файла без удаления существующего содержимого.
Ключевые методы
File.Exists— проверка наличия файла.File.ReadAllLines— загрузка всех строк в массив строк.File.ReadAllText— загрузка всего файла в одну строку.File.Copy— копирование файла в новое место.File.Delete— удаление файла из файловой системы.
Предварительные условия
Во всех примерах предполагается, что текстовый файл D:\Example.txt существует со следующими двумя строками:
Guru99 – .Net Guru99 – C#
1. Проверка существования файла — File.Exists
using System;
using System.IO;
namespace DemoApplication {
class Tutorial {
static void Main(string[] args) {
string path = "D:\\Example.txt";
if (File.Exists(path)) {
Console.WriteLine("File Exists");
} else {
Console.WriteLine("File Not Found");
}
Console.ReadKey();
}
}
}
Программа выводит File Exists, когда D:\Example.txt присутствует.
2. Построчное чтение — File.ReadAllLines
using System;
using System.IO;
namespace DemoApplication {
class Tutorial {
static void Main(string[] args) {
string path = "D:\\Example.txt";
string[] lines = File.ReadAllLines(path);
foreach (var line in lines) {
Console.WriteLine(line);
}
Console.ReadKey();
}
}
}
Каждая строка файла печатается на отдельной строке консоли.
3. Чтение всего файла — File.ReadAllText
using System;
using System.IO;
namespace DemoApplication {
class Tutorial {
static void Main(string[] args) {
string path = "D:\\Example.txt";
string content = File.ReadAllText(path);
Console.WriteLine(content);
Console.ReadKey();
}
}
}
Консоль отображает обе строки, объединённые переводом строки.
4. Копирование файла — File.Copy
using System;
using System.IO;
namespace DemoApplication {
class Tutorial {
static void Main(string[] args) {
string source = "D:\\Example.txt";
string destination = "D:\\ExampleNew.txt";
File.Copy(source, destination, overwrite: true);
Console.WriteLine("Copy succeeded");
Console.ReadKey();
}
}
}
Новый файл D:\ExampleNew.txt содержит точную копию Example.txt.
5. Удаление файла — File.Delete
using System;
using System.IO;
namespace DemoApplication {
class Tutorial {
static void Main(string[] args) {
string path = "D:\\Example.txt";
File.Delete(path);
Console.WriteLine("File deleted");
Console.ReadKey();
}
}
}
После выполнения D:\Example.txt навсегда удаляется с диска D.
Резюме
- Класс
System.IO.Fileпредоставляет основные файловые операции. - Используйте
File.ReadAllTextилиFile.ReadAllLinesдля ввода данных файла в приложение. - Всегда обрабатывайте исключения вроде
FileNotFoundExceptionилиUnauthorizedAccessExceptionв продакшн-коде.
Язык C
- Освоение операторов using в C#: импорт, псевдонимы и статические директивы
- Ввод-вывод в C: scanf() и printf() — подробное руководство
- Работа с файлами в C: мастерство ввода-вывода с fopen, fprintf, fread и fseek
- Работа с файлами в Python: открытие, чтение, запись и управление
- Axiomtek IPS960-511-PoE: All-in-One rugged визионный контроллер для промышленного контроля
- Освоение ввода-вывода файлов в C: создание, открытие и управление файлами
- Заголовочные файлы в C: типы, подключение и лучшие практики
- Обработка ошибок в C: лучшие практики и техники
- Обработка исключений в C#: try, catch, finally, throw и лучшие практики
- Работа с файлами в C#: FileStream, StreamReader, StreamWriter и File API