我有一个特别的问题。我有一个数据表,我想将其数据写入文本文件。为此(我已经在之前的步骤中对待过)我使用了:
DataTable table = MyLibrary.dtRawData;
var fileLines = table
.AsEnumerable()
.Select(row => String.Join(" ", row.ItemArray))
.Where(line => !String.IsNullOrWhiteSpace(line));
try
{
File.WriteAllLines(filePath, fileLines);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
我的问题是WriteAllLines
函数似乎总是追加数据,如果文件存在,但我需要的是重写的文件如果已经出现在当前位置。我可以从代码中更改哪些内容,以确保文件被覆盖并且不会附加?
问候。
答案 0 :(得分:2)
如果现有文件在同一目录中具有相同的名称,System.IO.File.WriteAllLines
方法将覆盖现有文件。
如果连续运行以下代码行
System.IO.File.WriteAllLines(@"C:\Users\{user}\Desktop\test.txt", new string[] { "e", "f", "g", "h" });
System.IO.File.WriteAllLines(@"C:\Users\{user}\Desktop\test.txt", new string[] { "a", "b", "c", "d" });
您最终会得到一个包含以下内容的文件:
一个
b
ç
d