編輯我發佈這個沒有閱讀他的新編輯:我看到你正在使用Image.FromFile。
如果文件沒有有效的圖像格式,或者如果GDI +不支持該文件的像素格式,則此方法將引發OutOfMemoryException異常。
您必須先處理圖像,然後才能刪除圖像。
Image.FromFile
該文件保持鎖定狀態,直到圖像被丟棄。
private Image image;
在你的圖像加載功能
:
image = Image.FromFile("path");
picobx.Image = image;
這正好在你的刪除方法;
image.Dispose;
File.Delete("path");
---不再相關---
如果你正在閱讀從流文件和流轉換爲圖像。然後你嘗試刪除文件而不關閉流,你將得到一個IOException。
System.IO.IOException:該進程無法訪問該文件「文件在這裏」,因爲它正被另一個進程使用..
和例子這可能是造成這
StreamReader file = new StreamReader(@"C:\trans.txt");
file.ReadToEnd();
File.Delete(@"C:\trans.txt");
如何/爲什麼你認爲實現'IDisposable'會在這種情況下幫助嗎? – LukeH 2009-12-08 14:14:35
需要更多信息在這裏。你說應用程序拋出異常;是說*文件*正在使用的例外情況?你能發佈異常嗎?如果它正在使用中,是您(即您的班級)使用該文件嗎? – 2009-12-08 14:15:09
處理程序的目的是釋放一個非託管資源,以便其他可能正在等待該資源的進程有可能使用它。處置者的目的不是刪除文件。就此而言,您可能會重新考慮這種設計的智慧。 – 2009-12-08 14:17:39