[英]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.