我有一个文本文件,我将附加数据(因此我不能只覆盖该文件)。问题是它最初确实包含了我不想要的内容,所以在我开始添加新数据之前。有没有办法清除文件而不必删除然后重新创建它?
答案 0 :(得分:7)
您可以先用空字符串覆盖文件,然后再附加数据。您可以使用它来覆盖文件:
System.IO.File.WriteAllText(Path, "")
与删除和重新创建文件相比,此优点是您将保留文件的原始创建日期以及任何其他元数据。
答案 1 :(得分:1)
是的,大多数.NET方法允许您添加或覆盖。您已经找到了一种可以执行此操作的方法 - File.WriteAllText 。唯一的缺点是它是非流式的,所以对于很多内容,你可能需要大量的内存。 File.Create是一个流版本。它可能看起来像更多的代码(它是),但它可以在你根本无法负担将所有内容一次放入内存的情况下很有用。 Example from MSDN:
Dim path As String = "c:\temp\MyTest.txt"
' Create or overwrite the file.
Dim fs As FileStream = File.Create(path)
' Add text to the file.
Dim info As Byte() = New UTF8Encoding(True).GetBytes(
"This is some text in the file.")
fs.Write(info, 0, info.Length)
fs.Close()
答案 2 :(得分:0)
http://msdn.microsoft.com/en-us/library/system.io.filestream.setlength(v=vs.110).aspx
FileStream.SetLength(0);
将FileStream Length设置为零。我已经包含了MSDN的文档。