文件锁定创建的图像?

时间:2012-06-28 20:33:48

标签: c# .net

我正在寻找服务中的资源泄漏,并且好奇以下代码实际上是否可以在创建后锁定此文件。它似乎被锁定了,因为它在打开后被删除,然后再次保存?

根据评论进行修改:

稍后访问该文件并返回IOException,并显示该文件无法访问,因为该文件正由另一个进程使用。

另外,“img = new Bitmap(...)是否在创建文件时没有实际访问该文件?或者我是否关闭该文件?

 using (Image img = new Bitmap(imgPath))
 {
     path = m_fpService.GetProcessedPath(irec, true);
     if (File.Exists(imgPath))
     {
         File.Delete(imgPath);
     }

     img.RotateFlip((RotateFlipType)adjustedRotation);
     img.Save(imgPath);
 }

1 个答案:

答案 0 :(得分:3)

来自documentation

  

文件名和路径可以相对于应用程序或   绝对路径。使用此构造函数打开具有以下内容的图像   文件格式:BMP,GIF,EXIF,JPG,PNG和TIFF。欲获得更多信息   有关支持的格式,请参阅位图类型。该文件保持锁定状态   直到位图被处理掉。

不确定为什么会这样,但我认为Bitmap类可以延迟加载文件的一部分。对于该功能,它在构造函数运行后需要访问。

您可以使用构造函数的Stream-taking重载,并在您选择的时间关闭流。