Image.FromFile 之后无法删除这个文件
pictrue图片是从文件加载的,现在想换张图片,更改之前要删除原有的文件,在删除原有的文件出现了异常
string path = @"C:UsersAdministratorsource eposMemoryCardLiteMemoryCardLiteinx86Debugimagesa.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:UsersAdministratorsource eposMemoryCardLiteMemoryCardLiteinx86Debugimagesa.jpg"; private void button2_Click(object sender, EventArgs e) { //删除 File.Delete(filename); //再加载图片 filename = @"C:UsersAdministratorsource eposMemoryCardLiteMemoryCardLiteinx86Debugimages.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