从文件中读取图像,然后删除文件

时间:2015-09-17 18:16:20

标签: image c++-cli 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");

但代码不起作用

错误

无法删除文件,该文件在另一个程序中打开

帮我删除文件。

1 个答案:

答案 0 :(得分:1)

Image::FromFile会锁定文件。你可以做的是:

  1. 以二进制模式(FileStream
  2. 打开文件
  3. FileStream的全部内容读入MemoryStream
  4. 关闭文件
  5. 使用Image
  6. 创建MemoryStream对象

    另一种方法是Clone Image,然后处理原始Image对象并使用克隆实例。克隆管理自己的内存,而不保留对原始流的引用。