无法删除文件(进程无法访问该文件,因为它正被另一个进程使用)

时间:2012-01-30 14:05:29

标签: c#

我尝试从我指定的目录中删除文件。它第一次运行良好,但第二次它给出了下一个例外:

  

该进程无法访问文件'C:\ Users \ DAAGEU \ AppData \ Local \ Temp \ Manual_Avatar \ AdamBody_1K_Pants_Black_Blended.jpg',因为它正由另一个进程使用。

foreach (String file in Directory.GetFiles((userDirectory)))
{
    try
    {
        //using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate))
        //{
            //fs.Unlock(fs.Position, fs.Length);
            //fs.Dispose();
            //fs.Close();
        //}

        File.Delete(file);
    }
    catch (Exception)
    {
        throw;
    }
}

只有图像似乎被“锁定”。我在stackoverflow上发现了一些东西,但没有任何帮助?我使用一些第三方软件来生成图像。

任何1知道如何解决这个问题或解决它?

解答:

我发现了问题。我正在使用WinForms,在一个WinForm中,我正在使用图像托管WPF控件。我发现在关闭之后我没有处理UC。所以我的错也应该在这个问题中得到了解释......

1 个答案:

答案 0 :(得分:2)

尝试通过Windows资源管理器以常规方式删除文件。如果你得到那个恼人的弹出窗口,说无法删除...它正被另一个人或程序使用,你可以下载 Unlocker 并让它确切地告诉你哪个进程有锁定它。这个小程序多年来对我非常有用。它甚至可以从记忆棒运行,因此安装是一种选择。安装它绝对是一个优点,因为它会在你弹出窗口时自动弹出锁定程序的名称。