2012-10-26 53 views
0

可能重複:
C# 4.0 unlock image after creating BitmapImage刪除圖像問題

我有這樣的代碼來創建WPF的圖像文件。

var newimage = new System.Windows.Controls.Image 
{ 
    Stretch = Stretch.Fill, 
    StretchDirection = StretchDirection.Both, 
    Width = Width, 
    Height = Height 
}; 

var logo2 = new BitmapImage(); 
logo2.BeginInit(); 
logo2.UriSource = uri; 
logo2.EndInit(); 
newimage.Source = logo2; 

一些這方面的處理之後已經刪除OL文件並創建一個新的,但我現在面臨一個錯誤

「因爲它正由另一個進程使用無法刪除文件」

我該怎麼辦才能解決這個問題?

謝謝!


P.S.

我刪除使用此文件:

try 
{ 
    if (File.Exists(fileName)) 
    { 
     File.Delete(fileName); 
     Debug.WriteLine("FILE MANAGER: File " + fileName + " has been deleted."); 
    } 
    return true; 
} 
+1

可能請您提供如何你想刪除的文件? –

+1

@PicrofoEGY完成。請看看。 –

+0

感謝您提供信息。儘管如此,還無法指出問題的發生地點。你能否提供更多關於'fileName'的信息? :) –

回答

1

您可能需要使用:

var logo2 = new BitmapImage(); 
logo2.BeginInit(); 
logo2.CacheOption = BitmapCacheOption.OnLoad; 
logo2.UriSource = uri; 
logo2.EndInit(); 
+0

我可以只讀這個文件到內存中,並且不鎖定磁盤映像文件嗎? –

+1

@Peretz - 可能,但是我上面的通常更好,因爲你必須找出誰處理的MemoryStream。請參閱http://stackoverflow.com/questions/6430299/bitmapimage-in-wpf-does-lock-file/6430416#6430416 – CodeNaked