删除图片时,报错“正由另一进程使用,因此该进程无法访问此文件”的处理方式

在做一个小项目时练习的时候,当我单击删除按钮删除图片时,却发生了异常,如下图:


在网上搜索半天,可就是没找到解决方法,终于,经过我的不懈努力,在谷歌里面搜到了。原来,在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("删除成功!");
这样,这个异常就被解决了!

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