在使用vs進行開發時,我們有時會使用Image.FromFile配合PictureBox來加載並顯示圖片,感覺挺方便,但是使用Image.FromFile有個小問題,加載完文件后不自動釋放,導致再次操作被關聯文件時候出現類似“文件xxx正由另一進程使用,因此該進程無法訪問該文件。”的錯誤,因此當要對一個文件進行多次操作時,最好不要使用Image.FromFile 而使用Image.FromStream。
下面是一個例子:
下面代碼目的是將一個圖片加載並顯示在picturebox上,一般情況下得到預期的結果,然而對於同一個filepath,若連續兩次調用下面的語句系統將會報錯(如用戶多次選擇加載同一張圖片)。
pictureBox1.Image = Image.FromFile(filepath);
采用Image.FromStream代替Image.FromFile可以解決上述問題,調用方法如下:
Stream s= File.Open(filepath, FileMode.Open);
pictureBox1.Image = Image.FromStream(s);
s.Close();