我有一个创建文件的 C# 单线程应用程序。使用该文件,然后将其删除。有时应用程序无法删除该文件。我得到的错误是:
“进程无法访问文件——文件路径和文件名——因为它正被另一个进程使用。”
我怎样才能找出这个文件有什么进程,我怎样才能让那个进程放手,以便可以删除文件。
我有一个创建文件的 C# 单线程应用程序。使用该文件,然后将其删除。有时应用程序无法删除该文件。我得到的错误是:
“进程无法访问文件——文件路径和文件名——因为它正被另一个进程使用。”
我怎样才能找出这个文件有什么进程,我怎样才能让那个进程放手,以便可以删除文件。
这件事很适合那个“陷阱”。
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
进程监视器 v3.05
它有一个“过滤器”子菜单,因此您可以将其微调到锁定的文件。
您需要发布相关代码以便我们查看。
然而,确保您的应用程序关闭它已打开的文件始终很重要。
通常这样的事情将确保:
using(var f = File.OpenRead("myfile")) {
...
}
或等价物:
try {
var f = File.OpenRead("myfile");
} finally {
f.close()
}
确保在删除之前关闭文件。
如果您使用 StreamWriter 类,请确保您使用其变量关闭
Ex. StreamWriter sw = new StreamWriter();
// some writing operation
sw.Close();