Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中实现一个图像文件的连续保存和删除功能#_C#_.net_Image_File Io - Fatal编程技术网

C# 如何在C语言中实现一个图像文件的连续保存和删除功能#

C# 如何在C语言中实现一个图像文件的连续保存和删除功能#,c#,.net,image,file-io,C#,.net,Image,File Io,如何在C#4.0中实现一个图像文件的连续保存和删除功能 我期待修改一个图像文件,如旋转90度。首先,我保存了一个本机名称,删除了原始文件,并将备用文件名重命名为原始文件名 在iis中托管我的应用程序后,遇到此错误消息 “该进程无法访问该文件,因为其他进程正在使用该文件。” 您使用Image.FromFile方法创建了一个Image对象,表示该文件中包含的图像 Image i= Image.FromFile(fileName); 这就是为什么您不能删除该文件:因为您的进程仍在使用它!您将无法删除

如何在C#4.0中实现一个图像文件的连续保存和删除功能

我期待修改一个图像文件,如旋转90度。首先,我保存了一个本机名称,删除了原始文件,并将备用文件名重命名为原始文件名

在iis中托管我的应用程序后,遇到此错误消息 “该进程无法访问该文件,因为其他进程正在使用该文件。”


您使用
Image.FromFile
方法创建了一个
Image
对象,表示该文件中包含的图像

Image i= Image.FromFile(fileName);
这就是为什么您不能删除该文件:因为您的进程仍在使用它!您将无法删除磁盘上的文件,直到您从中创建的
图像
对象被释放,释放对文件的锁定

FromFile
方法的示例确认了这一点:

在释放图像之前,文件将保持锁定状态


要确保对象已被释放,请将其创建和使用包装在文件中。

您使用
Image.FromFile
方法创建了一个
Image
对象,该对象表示该文件中包含的图像

Image i= Image.FromFile(fileName);
这就是为什么您不能删除该文件:因为您的进程仍在使用它!您将无法删除磁盘上的文件,直到您从中创建的
图像
对象被释放,释放对文件的锁定

FromFile
方法的示例确认了这一点:

在释放图像之前,文件将保持锁定状态


要确保对象已被释放,请将其创建和使用包装在文件中。

解决方案可能如下所示

Image i= Image.FromFile(fileName);
i.Save(svfilename);
i.Dispose();
System.IO.File.Delete(fileName);
System.IO.File.Move(svfilename, fileName);

解决方案可能是这样的

Image i= Image.FromFile(fileName);
i.Save(svfilename);
i.Dispose();
System.IO.File.Delete(fileName);
System.IO.File.Move(svfilename, fileName);

为什么不直接覆盖现有文件,而不是使用临时文件<代码>图像i=Image.FromFile(文件名);过程(i);i、 保存(文件名,ImageFormat.PNG)。请注意,您还缺少ImageFormat参数。为什么不直接覆盖现有文件,而不是使用临时文件<代码>图像i=Image.FromFile(文件名);过程(i);i、 保存(文件名,ImageFormat.PNG)。请注意,您还缺少ImageFormat参数。