如何检测文件复制过程已在C#中完成

时间:2017-03-01 06:17:18

标签: c# file-copying

我正在开展一个项目,我需要执行以下操作: 我需要重命名一个图像文件。 (从文件夹中打开图像,并提供名称并将其保存到同一文件夹中)

try
{
    string oldFileName = @"path\to\person1.jpg";
    string desFileName = @"path\to\person2.jpg";

    File.Copy(oldFileName, desFileName, true);

    if (File.Exists(oldFileName))
    {
        File.Delete(@oldFileName);
    }
}
catch (Exception ex)
{
}

我用上面的方法重命名了文件。

此过程使用新名称复制旧文件,但无法删除旧文件

异常消息:

  

该进程无法访问文件'path \ to \ person1.jpg',因为它是   被另一个进程使用。

如何解决这个问题?请建议以任何方式检测复制过程是否已完成。

1 个答案:

答案 0 :(得分:2)

由于您的代码是同步的,因此if声明完成了您的复制过程。

我打赌你有这个错误因为另一个进程(不是你的程序)使用了文件。 Maby你有油漆或其他东西。

您应该使用进程监视器或其他内容找到它。检查this question