当前位置: 首页 > 知识库问答 >
问题:

在加载其他图片之前删除图片框中的文件

狄誉
2023-03-14

我有picturebox,我尝试编写代码,当用户加载另一个图像到picturebox,旧文件,在图片中被删除。我试图找到24小时的解决方案,但我没有找到完全有效的解决方案。

 profilePictureBox.Dispose(); // When I use This After The Function Executed
                                 PictureBox Disappears But File Delete Successfully.
 try
                {
                    if (File.Exists(oldfilename))
                    {
                        File.Delete(oldfilename);
                        profilePicPictureBox.Load(picPath);
                    }
                    else
                    {
                        MessageBox.Show("File Not Found");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                } 
 profilePictureBox.Image = null;

我正在犯错误

System.IO.IOExecption:The Process cannot access the file 
'filepath' because it is being      used by another process.

共有1个答案

公羊招
2023-03-14

您需要将图像加载到内存中并将其添加到图片框中,而不需要直接从文件加载。load函数使文件保持打开状态,您将无法删除它。试试这个吧。注意:此代码中没有错误检查。

using (FileStream fs = new FileStream("c:\\path\\to\\image.jpg", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    byte[] buffer = new byte[fs.Length];
    fs.Read(buffer, 0, (int)fs.Length);
    using (MemoryStream ms = new MemoryStream(buffer))
        this.pictureBox1.Image = Image.FromStream(ms);
}

File.Delete("c:\\path\\to\\image.jpg");

这将打开文件并将其内容读入缓冲区,然后关闭它。它将用充满“复制”字节的内存流加载图片框,允许您自由删除加载它的图像文件。

 类似资料:
  • 所以我有一个包含图片和标题的文本框文档。我写了一个代码来循环遍历对象,检查对象是否是文本框,如果是,复制标题的文本,清除文本框,用更新的图片替换图片,并重新插入标题。 然而,该文件已经进行了引用标题的交叉引用。所以当我重新插入标题时,交叉引用不再起作用。我想我可以通过删除每个文本框中的图片来解决这个问题,这样标题就可以保留,交叉引用也可以工作。 不过,我不确定如何在代码中引用图片。任何帮助都将不胜

  • 我想创建几个文件夹中的项目文件夹,我可以保存我的图像。然后我想把这些图片加载到PictureBox中。 我现在如何加载info_hydraulik.png图像? 带有文件路径的图像 对你的帮助,提前表示亲切的问候和感谢。 弗拉梅尔

  • 当我创建时,我需要从另一个活动中删除一个片段,而不是创建它的活动: 然后我可以从片段中访问另一个活动,假设片段中有一个按钮可以打开另一个活动,现在,停留在该活动中我想删除启动该活动的片段,我得到该片段的参考号通过意图。所以我尝试: 但它给了我一个nullPointerException, 03-07 22:42:33.270 30993-30993/河马。rggmiranda。hiposleep

  • 本文向大家介绍php绘图之加载外部图片的方法,包括了php绘图之加载外部图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php绘图之加载外部图片的方法。分享给大家供大家参考。具体实现方法如下: 在实际应用中,就是常见的水印功能。 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍Android图片加载缓存框架Glide,包括了Android图片加载缓存框架Glide的使用技巧和注意事项,需要的朋友参考一下 Glide开源框架是Google推荐的图片加载和缓框架,其在Github上的开源地址是:https://github.com/bumptech/glide 当然一个Google推荐的框架肯定就是Volley啦。 目前Android主流开发工具是Androi

  • 使用指南 组件介绍 Lazyload 是 Vue 指令,使用前需要对指令进行注册 引入方式 import Vue from 'vue'; import Lazyload from 'vue-lazyload'; Vue.use(Lazyload, { lazyComponent: true, //失败时显示 (可以自定义) error: 'https://nuofe.nnte