什么进程阻止我的文件在c#中被删除

本文关键字:删除 文件 进程 我的 什么 | 更新日期: 2023-09-27 18:17:10

我有一个创建文件的c#单线程应用程序。使用该文件,然后删除它。有时,该应用程序在删除该文件时遇到麻烦。我得到的错误是:

"该进程不能访问文件——文件路径和文件名——因为它正在被另一个进程使用。"

什么进程阻止我的文件在c#中被删除

我怎样才能发现是哪个进程持有这个文件,我怎样才能让这个进程放手,这样文件就可以被删除了。

这个东西非常适合"gotcha"。

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Process Monitor 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();