如何在C#中实现一个图像文件的连续保存和删除功能
本文关键字:文件 图像 连续 保存 功能 删除 一个 实现 | 更新日期: 2023-09-27 18:21:04
如何在C#4.0 中连续执行一个图像文件、保存和删除功能
我想修改一个像旋转90度这样的图像文件。首先,我保存了一个本机名称,删除了原始文件,并将备用文件名重命名为原始文件名。
在iis中托管我的应用程序后,出现以下错误消息"进程无法访问该文件,因为另一个进程正在使用该文件。"
Image i= Image.FromFile(fileName);
i.Save(svfilename);
System.IO.File.Delete(fileName);
System.IO.File.Move(svfilename, fileName);
您使用Image.FromFile
方法创建了一个Image
对象,表示该文件中包含的图像
Image i= Image.FromFile(fileName);
这就是为什么您不能删除该文件:因为您的进程仍在使用它!您将无法删除磁盘上的文件,直到您从中创建的Image
对象被释放,从而释放对该文件的锁定。
FromFile
方法的文件证实了这一点:
在释放图像之前,文件一直处于锁定状态。
若要确保对象已释放,请将其创建和使用包装在using
块中。
解决方案可能是这样的
Image i= Image.FromFile(fileName);
i.Save(svfilename);
i.Dispose();
System.IO.File.Delete(fileName);
System.IO.File.Move(svfilename, fileName);