Tôi muốn tạo một tệp .txt và ghi vào nó, và nếu tệp đã tồn tại, tôi chỉ muốn nối thêm một số dòng:
string path = @"E:\AppServ\Example.txt";
if (!File.Exists(path))
{
File.Create(path);
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The very first line!");
tw.Close();
}
else if (File.Exists(path))
{
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The next line!");
tw.Close();
}
Nhưng dòng đầu tiên dường như luôn bị ghi đè ... làm thế nào tôi có thể tránh viết trên cùng một dòng (tôi đang sử dụng dòng này trong một vòng lặp)?
Tôi biết đó là một điều khá đơn giản, nhưng tôi chưa bao giờ sử dụng WriteLine
phương pháp này trước đây. Tôi hoàn toàn mới với C #.
File.Open
các đại biểu nội bộ cho một chức năng WinAPI (xem bình luận tiếp theo) hy vọng ngăn chặn điều kiện cuộc đua. Hầu hết các giải pháp ở đây không làm điều này và rõ ràng là tùy thuộc vào điều kiện chủng tộc.
if (file exists) { open file }
hầu như luôn luôn sai trong tất cả các ngôn ngữ lập trình! Đối với .NET, giải pháp là sử dụngFile.Open(path, FileMode.Append, FileAccess.ReadWrite)
các cờ thích hợp.