問題代碼
File.WriteAllText(path, content); // 每次覆蓋
解決方法
- File.AppendAllText(最簡單):
File.AppendAllText(path, content + Environment.NewLine, Encoding.UTF8);
- StreamWriter(大數據/高性能):
using (var sw = new StreamWriter(path, true, Encoding.UTF8)) {
sw.WriteLine(content);
}
- File.Open 配合 FileMode.Append:
using (var fs = File.Open(path, FileMode.Append, FileAccess.Write))
using (var sw = new StreamWriter(fs, Encoding.UTF8)) {
sw.WriteLine(content);
}
關鍵點
true 參數表示 append 模式。
- 手動添加
Environment.NewLine 或用 WriteLine 保證換行。
- 及時
Dispose 釋放文件鎖,避免併發衝突。