2012-01-30 136 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

相關問題