复制后无法删除文件

时间:2015-10-14 15:58:36

标签: c# file io

mscorlib.dll

中发生了System.IO.IOException类型的未处理异常

其他信息:该进程无法访问文件pathOfMyFile,因为它正由另一个进程使用。

这是我到达File.Delete时遇到的错误 我的代码如下所示:

File.Copy(frompath, topath1);
File.Copy(frompath, topath2);
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
File.Delete(frompath);

frompath是.png图片的路径。 我能做些什么才能做到这一点?

1 个答案:

答案 0 :(得分:0)

首先,您可以删除两个垃圾回收调用,因为它们将自动处理。

如果副本只是花时间完成并且文件系统要释放句柄,则可以尝试重复删除直到它工作。您可以忽略IOExceptions但请确保处理其他类型。

while (true)
{
    Thread.Sleep(50);

    try
    {
        File.Delete(frompath);
        break;
    }
    catch (IOException)
    {
        // Ignore IO exceptions
    }
    catch (Exception)
    {
        // Handle other exceptions
    }
}