可以';t删除文件(进程无法访问该文件,因为另一个进程正在使用该文件)

本文关键字:文件 进程 另一个 因为 删除 可以 访问 | 更新日期: 2023-09-27 18:21:48

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

进程无法访问文件"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后没有处理它。所以我的错是,我应该在这个问题中也考虑到这一点

可以';t删除文件(进程无法访问该文件,因为另一个进程正在使用该文件)

尝试通过windows资源管理器以通常的方式删除文件。如果你收到一个烦人的弹出窗口,上面写着"无法删除…"。。。它正被另一个人或程序使用,你可以下载Unlocker并让它告诉你哪个进程有锁。这些年来,这个小程序对我非常有用。它甚至可以从内存中运行,所以安装是一种选择。安装它绝对是一个加分项,因为当你得到弹出窗口时,它会自动弹出锁定程序的名称。