Xử lý tập tin trong C# – Phần 7
1. Tổng quan về xử lý tập tin trong C#
C# cung cấp các lớp mạnh mẽ để làm việc với tập tin, bao gồm:
File– Thao tác tập tin đơn giảnFileInfo– Cung cấp thêm thông tin và thao tác trên tập tinDirectory– Làm việc với thư mụcDirectoryInfo– Cung cấp thông tin về thư mụcStreamReader,StreamWriter– Đọc và ghi tập tin văn bảnFileStream– Đọc và ghi dữ liệu nhị phân
2. Kiểm tra sự tồn tại của tập tin
Trước khi thao tác trên tập tin, nên kiểm tra xem tập tin có tồn tại không.
string filePath = "data.txt";
if (File.Exists(filePath))
{
Console.WriteLine("Tập tin tồn tại.");
}
else
{
Console.WriteLine("Tập tin không tồn tại.");
}
3. Tạo tập tin mới trong C#
3.1. Sử dụng File.Create()
string filePath = "newfile.txt";
using (FileStream fs = File.Create(filePath))
{
Console.WriteLine("Tập tin đã được tạo.");
}
3.2. Sử dụng FileInfo.Create()
FileInfo fileInfo = new FileInfo("infofile.txt");
using (FileStream fs = fileInfo.Create())
{
Console.WriteLine("Tập tin đã được tạo.");
}
4. Ghi dữ liệu vào tập tin
4.1. Sử dụng File.WriteAllText()
string filePath = "data.txt";
string content = "Chào mừng bạn đến với C#";
File.WriteAllText(filePath, content);
Console.WriteLine("Dữ liệu đã được ghi vào tập tin.");
4.2. Sử dụng StreamWriter
using (StreamWriter writer = new StreamWriter("data.txt"))
{
writer.WriteLine("Dòng 1");
writer.WriteLine("Dòng 2");
}
Console.WriteLine("Dữ liệu đã được ghi vào tập tin.");
4.3. Ghi dữ liệu mà không xóa nội dung cũ (Append)
using (StreamWriter writer = new StreamWriter("data.txt", true))
{
writer.WriteLine("Dòng mới được thêm vào.");
}
5. Đọc dữ liệu từ tập tin
5.1. Sử dụng File.ReadAllText()
string content = File.ReadAllText("data.txt");
Console.WriteLine("Nội dung tập tin: " + content);
5.2. Sử dụng StreamReader để đọc từng dòng
using (StreamReader reader = new StreamReader("data.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
6. Xóa tập tin
string filePath = "data.txt";
if (File.Exists(filePath))
{
File.Delete(filePath);
Console.WriteLine("Tập tin đã được xóa.");
}
7. Làm việc với thư mục
7.1. Kiểm tra thư mục có tồn tại không
string folderPath = "MyFolder";
if (Directory.Exists(folderPath))
{
Console.WriteLine("Thư mục tồn tại.");
}
else
{
Console.WriteLine("Thư mục không tồn tại.");
}
7.2. Tạo thư mục mới
Directory.CreateDirectory("NewFolder");
Console.WriteLine("Thư mục đã được tạo.");
7.3. Xóa thư mục
Directory.Delete("NewFolder", true);
Console.WriteLine("Thư mục đã được xóa.");
7.4. Liệt kê tất cả tập tin trong thư mục
string[] files = Directory.GetFiles("MyFolder");
foreach (string file in files)
{
Console.WriteLine(file);
}
8. Đọc và ghi tập tin nhị phân (FileStream)
8.1. Ghi dữ liệu nhị phân vào tập tin
using (FileStream fs = new FileStream("binary.dat", FileMode.Create))
{
byte[] data = { 1, 2, 3, 4, 5 };
fs.Write(data, 0, data.Length);
}
Console.WriteLine("Dữ liệu nhị phân đã được ghi.");
8.2. Đọc dữ liệu nhị phân từ tập tin
using (FileStream fs = new FileStream("binary.dat", FileMode.Open))
{
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
Console.WriteLine("Dữ liệu đã đọc: " + string.Join(", ", data));
}
9. Tóm tắt bài học
✅ Kiểm tra tập tin/thư mục – File.Exists(), Directory.Exists()
✅ Tạo tập tin/thư mục – File.Create(), Directory.CreateDirectory()
✅ Đọc & ghi tập tin văn bản – StreamWriter, StreamReader, File.ReadAllText()
✅ Xóa tập tin/thư mục – File.Delete(), Directory.Delete()
✅ Làm việc với tập tin nhị phân – FileStream
💡 Bài tiếp theo:
👉 Xử lý ngoại lệ trong C# – Phần 8 🛑