仅在不存在的情况下创建文件

Roe*_*rel 15 .net c# io

我想创建一个文件,如果它尚不存在.
像这样的代码:

if (!File.Exists(fileName))
{
    fileStream fs = File.Create(fileName);
}
Run Code Online (Sandbox Code Playgroud)

如果文件将在"if"和"create"之间创建,请将其保留为竞争条件.

我怎么能避免呢?

编辑:这里不能使用
,因为它是一个不同的进程(同一个应用程序的多个实例).

Kri*_*enn 21

你也可以使用

FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
Run Code Online (Sandbox Code Playgroud)

但是,您应该查看线程锁定,就好像多个线程尝试访问该文件一样,您可能会遇到异常.

  • 谢谢,这就是我一直在寻找的。仅使用“ FileMode.CreateNew”作为第二个参数。 (2认同)

Roe*_*rel 13

Kristian Fenn的答案几乎就是我所需要的,只是使用不同的FileMode.这就是我要找的东西:

FileStream fs = new FileStream(fileName, FileMode.CreateNew);
Run Code Online (Sandbox Code Playgroud)