Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Image 从文件中读取图像,然后删除文件_Image_C++ Cli_Delete File - Fatal编程技术网

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

Image 从文件中读取图像,然后删除文件,image,c++-cli,delete-file,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"); 现在,要删除系统的照片,请使用以下代码: Image^ image = Image::FromFile("Imag

我使用以下代码在我的应用程序中打开照片:

Image^ image = Image::FromFile("Image.jpg");

pictureBox1->ImageLocation="Image.jpg";

FileInfo^ FileInfoStr = gcnew FileInfo("Image.jpg");
File::Delete("Image.jpg");
现在,要删除系统的照片,请使用以下代码:

Image^ image = Image::FromFile("Image.jpg");

pictureBox1->ImageLocation="Image.jpg";

FileInfo^ FileInfoStr = gcnew FileInfo("Image.jpg");
File::Delete("Image.jpg");

但这些代码不起作用

错误

无法删除该文件,该文件已在其他程序中打开


帮助我删除文件。

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

  • 以二进制模式打开文件(
    FileStream
  • 文件流的全部内容读入
    内存流
  • 关闭文件
  • 使用
    MemoryStream

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

    在尝试删除文件之前是否关闭了该文件?请对此进行读取:。特别有趣的是:“在释放对映像的最后一个引用之前始终调用Dispose。否则,在垃圾收集器调用映像对象的Finalize方法之前,它正在使用的资源将不会被释放。”