Image.FromFile 之后无法删除这个文件

 

 

Image.FromFile 之后无法删除这个文件
 
pictrue图片是从文件加载的,现在想换张图片,更改之前要删除原有的文件,在删除原有的文件出现了异常

        string path = @"C:\Users\Administrator\source\repos\MemoryCardLite\MemoryCardLite\bin\x86\Debug\images\a.jpg";
        private void Form1_Load(object sender, EventArgs e)
        {    //加载
            pictureBox1.Image = Image.FromFile(path);
        }
        
        private void button2_Click(object sender, EventArgs e)
        {    //删除
            File.Delete(path);
        }

 

 

 

解决办法
使用 Stream

Stream s = File.Open(path, FileMode.Open);
pictureBox1.Image = Image.FromStream(s);
s.Close();
string filename = @"C:\Users\Administrator\source\repos\MemoryCardLite\MemoryCardLite\bin\x86\Debug\images\a.jpg";
private void button2_Click(object sender, EventArgs e)
{    //删除
    File.Delete(filename);
    
    //再加载图片
    filename = @"C:\Users\Administrator\source\repos\MemoryCardLite\MemoryCardLite\bin\x86\Debug\images\b.jpg";
     pictureBox1.Image = LoadImage(ofd.FileName);
}

public Image LoadImage(string path)
{
    Image img = null;
    if (File.Exists(path))
    {  //加载
        Stream s = File.Open(path, FileMode.Open);
        img = Image.FromStream(s);
        s.Close();
    }
    return img;
}

private void Form1_Load(object sender, EventArgs e)
{
    LoadImage(filename);
}

2019年12月8日 19:13:03

 

posted @ 2019-12-08 19:13  XE2011  阅读(404)  评论(0编辑  收藏  举报