C#读取图片突然发现程序不退出图片无法删除,被占用了怎么办?

xingyun86 3天前 28

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);

有了这个方法,再也不怕忘记释放,占用文件了。

×
打赏作者
最新回复 (0)
查看全部
全部楼主
返回