从文件中读取图像,然后删除文件
Read image from file, then delete file
我在我的应用程序中打开照片,使用以下代码:
Image^ image = Image::FromFile("Image.jpg");
pictureBox1->ImageLocation="Image.jpg";
FileInfo^ FileInfoStr = gcnew FileInfo("Image.jpg");
现在,删除系统照片,使用以下代码:
File::Delete("Image.jpg");
或
FileInfo^ FileInfoStr = gcnew FileInfo("Image.jpg");
FileInfoStr->Delete();
或
DeleteFile("Image.jpg");
但代码不起作用
错误
无法删除文件,文件已在其他程序中打开
帮我删除文件。
Image::FromFile
保持文件锁定。你可以做的是:
- 以二进制模式打开文件(
FileStream
)
- 将
FileStream
的全部内容读入MemoryStream
- 关闭文件
- 使用
MemoryStream
创建 Image
对象
另一种方法是 Clone
Image
,然后处理原始 Image
对象并使用克隆的实例。克隆管理自己的内存,不保留对原始流的引用。
我在我的应用程序中打开照片,使用以下代码:
Image^ image = Image::FromFile("Image.jpg");
pictureBox1->ImageLocation="Image.jpg";
FileInfo^ FileInfoStr = gcnew FileInfo("Image.jpg");
现在,删除系统照片,使用以下代码:
File::Delete("Image.jpg");
或
FileInfo^ FileInfoStr = gcnew FileInfo("Image.jpg");
FileInfoStr->Delete();
或
DeleteFile("Image.jpg");
但代码不起作用
错误
无法删除文件,文件已在其他程序中打开
帮我删除文件。
Image::FromFile
保持文件锁定。你可以做的是:
- 以二进制模式打开文件(
FileStream
) - 将
FileStream
的全部内容读入MemoryStream
- 关闭文件
- 使用
MemoryStream
创建
Image
对象
另一种方法是 Clone
Image
,然后处理原始 Image
对象并使用克隆的实例。克隆管理自己的内存,不保留对原始流的引用。