1

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

根据评论进行编辑:

稍后将访问该文件并返回一个 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);
 }
4

1 回答 1

3

文档

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

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

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

于 2012-06-29T11:16:52.790 回答