我不太理解它:
FileMode.Create
如果文件不存在,则创建一个新文件,如果文件已存在,则覆盖该文件。
FileMode.Truncate
不创建新文件,但会删除现有文件的所有内容,因此基本上也会覆盖文件。
那么为什么还有这种可能性呢:
public void DoStuff()
{
using (FileStream fs = File.Open(path, FileMode.Truncate, FileAccess.Write, FileShare.None))
{
//Do something
}
}
当足够做到以下几点时:
public void DoStuff()
{
using (FileStream fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None))
{
//Do something
}
}
因为两者基本上都是使用空文件来写入内容
Truncate
不会创建新文件”。何时使用它:当您想要覆盖文件的内容,但不想在不存在文件时创建它时。 - Franz Gleichmann