删除文件时出现“进程无法访问文件....”错误

时间:2014-02-04 08:50:01

标签: c# garbage-collection

我的BIN目录中有三个文件夹。

1)积压  2)InProgress  3)完成

Backlog文件夹中有TXT文件。在某些操作过程中,我使用以下代码将文件从“Backlog”复制到“InProgress”。

System.IO.File.Copy(source,target,true);

文件已成功复制到目标文件夹。现在我想从“Backlog”中删除原始文件。所以我使用了下面的代码。

System.IO.File.Delete(source);

它绕过异常,“进程无法访问文件源......”

我认为它与垃圾收集有关,我需要使用“USING”语句来销毁它。但是我在下面试过,它说使用的语法是错误的:(

using(System.IO.File.Copy(source,target,true)){}

我在MOVE下方尝试过,但我仍然遇到同样的错误。

using(System.IO.File.Move(source,target))

注意:在将文件从FOLDER 1移动到FOLDER 2期间,MOVE成功,       在将文件从FOLDER 2移动到FOLDER 3时,MOVE失败,

所以我觉得,在第一次移动之后,我们必须重置一些东西吗?

完整代码

string filepathBackLog = AppSettings["Backlog"];
string filepathInProgress = AppSettings["InProgress"];
string filepathCompleted = AppSettings["Completed"];

if(!System.IO.File.Exists(filepathBackLog ))
    return;

System.IO.File.Move(filepathBackLog ,filepathInProgress ); //Success, I can see it in folder.
System.IO.File.Move(filepathInProgress ,filepathCompleted );//Exception, I think we need to give some time to execute first MOVE.

请指导我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

为什么不使用File.Move?它也会照顾删除。