C#程序删除图片问题
我写了一个C# winfrom小程序,通过openFileDialog控件上传图片到该项目中的image文件夹下,然后点击程序的上某个图片控件可以循环显示image下的图片(点击一次切换一张),现在我想通过窗口上的删除按钮,删除掉窗口图片控件所显现的图片对应image文件夹下的图片,却提示图片被程序所占用,无法删除,同时删除其他图片也不行,求各位高手给点方法。
verui
11 years, 11 months ago
Answers
不知道你的删除代码是怎么写的,你再删除的时候回收一下内存,比如:
如何还不行,你尝试一下将图片以流的方式加载:
FileStream fs = new FileStream(entryPhoto, FileMode.Open);
Image img = Image.FromStream(fs);
fs.Close();
以流的方式加载后,这里提供给你两种强制删除的方法,你试试:
//第一种方法,在要进行文件操作前将Image对象销毁.
PictureBox picbox;
if(picbox.Image!=null)picbox.Image.Disponse();
//第二种方法,就是在加载图像的时候用一种方法替代:
System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
g.DrawImage(img, 0, 0);
g.Flush();
g.Dispose();
img.Dispose();
sanfack
answered 11 years, 11 months ago