2012-01-30 120 views
1

我尝试从我指定的目录中删除文件。第一次它的伟大工程,但第二次就给出了一个异常:无法删除文件(进程无法访问文件,因为它正在被另一个进程使用)

该进程无法访问文件“C:\用户\ DAAGEU \应用程序数据\本地的\ 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之后我没有处理这个UC。所以我的错我应该已经在这个问题上提出了...

+2

你提供的所有代码?你是否在相同的代码中创建这些图像,如果是,你是关闭和处理创建图像的流或过程? – mservidio 2012-01-30 14:08:31

+0

@丹尼尔A.怀特,它的评论。 @ mservidio目录由一些第三方软件生成。如果我进行了更改,我想删除所有文件,并使用第三方软件重新生成该文件夹! – dg90 2012-01-30 14:12:34

+2

尝试使用文件解锁器实用程序(unlocker,lockhunter)来查看哪个进程正在保存该文件。如果它是你的应用程序,那么你还没有向我们展示更多的代码。 – 2012-01-30 14:13:25

回答

2

尝试通过Windows资源管理器以通常的方式删除你的文件。如果您在那里遇到难以删除的烦人弹出窗口...正在使用您可以下载的其他人或程序Unlocker,并让它告诉您确切地哪个进程锁定了它。这个小程序多年来对我非常有用。它甚至从记忆棒运行,所以安装是一个选项。安装它肯定是一个加号,因为它会在弹出窗口时自动弹出锁定程序的名称。

+1

我发现了这个问题。我正在使用WinForms,并且在一个WinForm中,我用图像托管了一个WPF控件。我发现在关闭UC之后我没有处理这个UC。所以...但是thx提供了一些很好的建议;-)! – dg90 2012-01-30 15:45:06

相关问题