繁体   English   中英

等待文件创建后再写入

[英]Wait for a file to be created before writing to it

我有以下代码:

if (!File.Exists(fileName))
{
    File.Create(fileName);
}
File.WriteAllText(fileName, contents);

但是,每次我运行它都会得到一个IOException:

mscorlib.dll中发生了'System.IO.IOException'类型的未处理异常

附加信息:该进程无法访问文件'C:\\ Users \\ Frankie \\ Commander \\ config \\ freq.txt',因为该文件正在被另一个进程使用。

如何使File.WriteAllText()等待创建完成?

WriteAllText方法为您创建文件,因此这就是您所需要的:

if (!File.Exists(fileName))
{
    File.WriteAllText(fileName, contents);
}

如果您不担心可能会覆盖文件,则甚至可以忽略File.Exists检查,因为WriteAllText会覆盖现有文件。

您的原始代码有问题的原因是File.Create打开了文件的FileStream并因此将其锁定; 您必须先关闭它才能写它。

创建文件后关闭文件:

if (!File.Exists(fileName))
{
    File.Create(fileName).Close();
}
File.WriteAllText(fileName, contents);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM