gpt4 book ai didi

C# File.Delete,另一个进程正在使用的文件

转载 作者:太空狗 更新时间:2023-10-29 22:11:38 24 4
gpt4 key购买 nike

我在尝试删除图像文件时遇到问题。我总是收到一条错误消息:IOExeption 未处理。访问被拒绝,因为该文件正被另一个进程使用。

我不知道那可能是什么过程以及如何解决它。

private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)        {                        Album album = GetAlbum(comboBox1.SelectedIndex);            Photo photo = GetPhoto(comboBox1.SelectedIndex, comboBox3.SelectedIndex);                       txtPhotoPath.Text = Directory.GetCurrentDirectory() + "\\"  + photo.SPath;            lblExtention.Text = photo.SExtention;            txtPhotoTitle.Text = photo.STitle;            pctrbFoto.Image = Image.FromFile(foto.SPath).GetThumbnailImage(GetWitdth(photo.SPath, GetHeight(photo.SPath, 150)), GetfHeight(photo.SPath, 150), null, new IntPtr());        }private void btnChangePhoto_Click(object sender, EventArgs e){            Album album = GetAlbum(comboBox1.SelectedIndex);            Photo photo = GetPhoto(comboBox1.SelectedIndex, comboBox3.SelectedIndex);            File.Delete("Albums\\Images\\" + photo.STitle + foto.SExtention);            photo.SExtention = lblExtention.Text;            photo.STitle = txtPhotoTitel.Text;            Photo.SPath = txtPath.Text;            File.Copy(photo.SPath, "Albums\\Images\\" + photo.STitle + photo.SExtention);}

谢谢,文森特


感谢大家的帮助。

我用过这个,现在效果很好


你的进程是使用 file 的进程,你需要将图像设置为 null 使用这样的东西:

var img = Image.FromFile(foto.SPath).GetThumbnailImage(GetWitdth(photo.SPath,GetHeight(photo.SPath, 150)), GetfHeight(photo.SPath, 150), null, new IntPtr());

pctrbFoto.Image = img;

img = null;

GC.Collect();

最佳答案

我要查看的第一个区域是您的 GetPhoto 方法。你有没有关闭的 StreamReader?确保如果您在删除之前对文件执行任何类型的 I/O,请先关闭这些连接。 GetPhoto() 方法有什么作用?

关于C# File.Delete,另一个进程正在使用的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com