文件xxx正由另一進程使用,因此該進程無法訪問該文件


在使用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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM