C#读取图片突然发现程序不退出图片无法删除,被占用了怎么办?
正所谓空穴不来风,苍蝇不叮没缝的蛋。
必然是访问文件未释放句柄。
var sFileName="d:\\test.png";
var img = System.Drawing.Image.FromFile(sFileName);
img.Dispose();//记住释放
var bmp = new System.Drawing.Bitmap(this.listView_ImageLoad.SelectedItems[i].Tag.ToString());
bmp.Dispose();//记住释放
如果总是怕忘记,怎么办呢,还是有终极办法的。
var fs = new System.IO.FileStream(m_strImageLoadPath + item.Name, FileMode.Open, FileAccess.Read);
var byteLength = (int)fs.Length;
var fileBytes = new byte[byteLength];
fs.Read(fileBytes, 0, byteLength);
fs.Close();
var mStream = new MemoryStream(fileBytes);
var image = System.Drawing.Image.FromStream(mStream);
有了这个方法,再也不怕忘记释放,占用文件了。