2013-07-05 66 views
0

汽車無刪除功能如何做一個鏡像文件,保存和刪除汽車無在C#4.0如何做一個鏡像文件,保存在C#

功能我期待修改像旋轉90度的圖像文件。首先我保存了替代名稱並刪除原始文件,並將替代文件名重命名爲原始文件名。

在iis中託管我的應用程序之後,遇到此錯誤消息 「進程無法訪問文件,因爲它正在被另一進程使用。」

Image i= Image.FromFile(fileName); 
i.Save(svfilename); 
System.IO.File.Delete(fileName); 
System.IO.File.Move(svfilename, fileName); 
+1

你爲什麼不直接覆蓋,而不是使用一個臨時文件現有的文件,? 'Image i = Image.FromFile(fileName); ProcessSomething(ⅰ); i.Save(fileName,ImageFormat.PNG);'。請注意,你也錯過了ImageFormat參數。 –

回答

3

您使用的Image.FromFile方法來創建表示包含在該文件中的圖像的Image對象

Image i= Image.FromFile(fileName); 

這就是爲什麼你不能刪除該文件:因爲你的進程仍在使用它!直到您創建的Image對象被釋放後,您將無法刪除磁盤上的文件,釋放對該文件的鎖定。

documentationFromFile方法證實了這一點:

直到圖像被設置在文件保持鎖定。

爲確保丟棄對象,請將其創建和使用包裝在using block之內。

0

的解決方案可能是這樣

Image i= Image.FromFile(fileName); 
i.Save(svfilename); 
i.Dispose(); 
System.IO.File.Delete(fileName); 
System.IO.File.Move(svfilename, fileName); 
相關問題