刪除圖片時,報錯“正由另一進程使用,因此該進程無法訪問此文件”的處理方式

在做一個小項目時練習的時候,當我單擊刪除按鈕刪除圖片時,卻發生了異常,如下圖:


在網上搜索半天,可就是沒找到解決方法,終於,經過我的不懈努力,在谷歌裏面搜到了。原來,在PictureBox裏面顯示圖片的的這一事件佔據了程序的一個進程,當要刪除這張圖片的時候,這個進程仍然在執行中。就算讓PictureBox先顯示下一張圖片,然後再刪除也不行。因爲要刪除的那張圖片被佔用了,無法刪除!面對這樣的情況,需要在這個圖片文件被刪除之前,就釋放掉PictureBox裏面的圖片資源。具體代碼如下:

//獲取要刪除的圖片的路徑
                string fullPath = GetPictureFullPath(lbPictureName.SelectedItem.ToString());
                
                FileInfo file = new FileInfo(fullPath);

                //釋放掉PictureBox裏面的Image資源
                pbShowPicture.Image.Dispose();

                //刪除一張圖片後,讓PictureBox自動顯示下一張,如果已經是最後一張,則顯示第一張圖片
                if (lbPictureName.SelectedIndex == lbPictureName.Items.Count)
                {
                    lbPictureName.SelectedIndex = 0;
                }
                else
                {
                    lbPictureName.SelectedIndex = index + 1;
                }
                lbPictureName.Items.Remove(lbPictureName.Items[index]); //把ListBox裏面的圖片移除
                
                file.Delete();        //刪除圖片                
                
                MessageBox.Show("刪除成功!");
這樣,這個異常就被解決了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章