图像文件正在被另一个进程使用。

4

我想从文件夹中删除我的图片。但是它提示"正在被另一个进程使用"。

这是我的代码:

fuProductImage.SaveAs(fileFolderPathTemp + fuProductImage.FileName);

 Bitmap orgImage = new Bitmap(fileFolderPathTemp + fuProductImage.FileName);
 ResizeAndSaveImages(orgImage, fileFolderPathLarge, fuProductImage.FileName, 66, 66);

 File.Delete(fileFolderPathTemp + fuProductImage.FileName);

我应该做什么来删除这个文件?


1
在第二行的周围加上一些usingusing ( Bitmap orgImage = new Bitmap(fileFolderPathTemp + fuProductImage.FileName) ) { /* 这里只有第三行。 */ } - Uwe Keim
2
@UweKeim 谢谢你。它运行得非常好。你能再写一遍作为答案吗?因为很多人不会检查未回答的问题。再次非常感谢你。 - cagin
1个回答

6

根据您的要求,我的建议是将第二行和第三行放入using中,如下:

fuProductImage.SaveAs(fileFolderPathTemp + fuProductImage.FileName);

using ( Bitmap orgImage = 
        new Bitmap(fileFolderPathTemp + fuProductImage.FileName) )
{
    ResizeAndSaveImages(
        orgImage, 
        fileFolderPathLarge, 
        fuProductImage.FileName, 
        66, 
        66);
}

File.Delete(fileFolderPathTemp + fuProductImage.FileName);

这样做有益的原因是 using 确保在调用 File.Delete() 函数之前,正确释放了内存并释放了文件句柄,从而使 orgImage 被正确 处置

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接