在c# /.NET中创建空文件最简单/规范的方法是什么?
目前我能找到的最简单的方法是:
System.IO.File.WriteAllLines(filename, new string[0]);
在c# /.NET中创建空文件最简单/规范的方法是什么?
目前我能找到的最简单的方法是:
System.IO.File.WriteAllLines(filename, new string[0]);
当前回答
File.WriteAllText("path", String.Empty);
or
File.CreateText("path").Close();
其他回答
System.IO.File.Create(@"C:\Temp.txt");
正如其他人指出的那样,您应该处理该对象或将其包装在空的using语句中。
using (System.IO.File.Create(@"C:\Temp.txt"));
您可以将返回对象的方法链接起来,因此您可以立即在一条语句中关闭刚刚打开的文件。
File.Open("filename", FileMode.Create).Close();
File.WriteAllText("path", String.Empty);
or
File.CreateText("path").Close();
创建空文件的一个常见用例是,在没有更复杂的进程通信的情况下,触发在不同进程中发生的其他事情。在这种情况下,从外部世界的角度来看,让文件创建是原子的会有所帮助(特别是当被触发的东西将要删除文件以“使用”触发器时)。
因此,在与您想要创建的文件相同的目录中创建一个垃圾名称(Guid.NewGuid.ToString()),然后执行一个file,这可能会有所帮助。从临时名称改为您想要的名称。否则,检查文件是否存在并删除触发器的触发代码可能会遇到竞态条件,即在完全关闭文件之前删除文件。
将临时文件放在同一个目录(和文件系统)中可以获得所需的原子性。这就得到了。
public void CreateEmptyFile(string path)
{
string tempFilePath = Path.Combine(Path.GetDirectoryName(path),
Guid.NewGuid.ToString());
using (File.Create(tempFilePath)) {}
File.Move(tempFilePath, path);
}
path . gettempfilename()将创建一个唯一命名的空文件并返回该文件的路径。
如果你想控制路径,但获得一个随机文件名,你可以使用GetRandomFileName返回一个文件名字符串,并使用它创建
例如:
string fileName=Path.GetRandomFileName();
File.Create("custom\\path\\" + fileName);