"进程无法访问文件X,因为它被另一个进程使用" - C#

Mic*_*ern 2 .net c# console-application

当我在控制台应用程序中执行以下代码时,我得到"进程不能是文件X,因为它正被另一个进程使用":

List<string> lines1 = new List<string>();
List<string> lines2 = new List<string>();

string path1 = ConfigurationManager.AppSettings.Get("path1");
string path2 = ConfigurationManager.AppSettings.Get("path2");

File.Create(path1);
File.Create(path2);

foreach (object myObject in myObjects)
{
   //do some fancy logic here!!!
}

File.WriteAllLines(path1, lines1.ToArray());  //exception is thrown here
File.WriteAllLines(path2, lines2.ToArray());
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Jar*_*Par 5

这里可能出现的问题是File.Create方法.它正在创建并返回包含在FileStream对象中的有问题文件的句柄.该对象将文件保持打开以进行写入,因此阻止了以后的File.WriteAllLines调用.

最简单的解决方案是删除File.Create呼叫.只需让WriteAllLines方法为您创建文件即可