C# .NET:创建新文件时权限的IOException?

C# .NET:创建新文件时权限的IOException?,c#,.net,io,C#,.net,Io,我正在尝试创建一个新文件并将XML写入其中: FileStream output = File.Create(Path.Combine(PATH_TO_DATA_DIR, fileName)); 该参数的计算结果为: C:\path\to\Data\test.xml 例外情况是: The process cannot access the file 'C:\path\to\Data\test.xml' because it is being used by another process.

我正在尝试创建一个新文件并将XML写入其中:

FileStream output = File.Create(Path.Combine(PATH_TO_DATA_DIR, fileName));
该参数的计算结果为:

C:\path\to\Data\test.xml
例外情况是:

The process cannot access the file 'C:\path\to\Data\test.xml' because it is being used by another process.
我做错了什么

更新:此代码引发相同的异常:

StreamWriter writer = new StreamWriter(Path.Combine(PATH_TO_DATA_DIR, fileName));
更新2:我试图创建的文件在文件系统中不存在。那么,它是如何被使用的呢


更新3:更改为新文件名,现在可以使用了。我不知道为什么。可能是我在第一次调用时不知道创建了它,但在随后的调用中失败了?

您的程序在创建文件后会保留一个句柄,以返回到FileStream对象。因为您没有指定对它的访问权限,所以它可能不会让您抓住它。也许你应该考虑关闭它,然后通过指定你想要它如何打开,只读,读写,写/写>?/p> < p>这个消息意味着另一个进程正在使用那个文件。如果您打开了它,它可能正在使用它,或者在最初创建它时,如果流没有正确关闭,它也可以这样做


首先检查确保您没有打开它。我会尝试更改文件名,看看是否出现相同的错误。如果您的代码中的某个地方出现了相同的错误,那么在处理完文件后,它不会关闭一个流。

没有试图听起来有侮辱性,但文件夹是否存在?文件是否已存在,但被系统隐藏?运行该程序的用户帐户是否具有对该文件夹的写入权限?您是否尝试过使用不同的方法(如file.writealText)创建文件,测试是否是您对file.Create的特定调用?

如上所述,在代码运行之前,文件系统中不存在该文件。那么,另一个过程如何使用它呢?这就是我在回答中的意思。感谢David Basarab让事情变得更清楚=我无法关闭它,因为File.Create正在引发异常。在该调用之前,句柄和文件都不存在。然后听起来好像您正在尝试创建一个已经存在的文件。