gpt4 book ai didi

c# - 如何在 C# 中关闭该文件进程后删除文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:39 25 4
gpt4 key购买 nike

我想删除一个文件。但它不能这样做,因为它使用了另一个进程。错误信息:

"The process cannot access the file '*file path\4.JPG*' because it is being used by another process."  

我的程序的描述是,假设我将一张图像复制到一个普通文件中。然后,如果我想从公共(public)文件夹中删除该图像,则会生成错误消息。 file.Delete(..) 在我的代码中不起作用。

    private void btnDelete_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("Are you sure do you want to delete this recorde?","Delete",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if (result.ToString().Equals("Yes"))
{
string deleteQuery = "DELETE FROM dbo.fEmployee WHERE EmpId=@empId";
SqlParameterCollection param = new SqlCommand().Parameters;
param.AddWithValue("@empId",cmbEmpIdD.SelectedValue);
int delete = _dataAccess.SqlDelete(deleteQuery,param);
if (delete>0)
{
**ImageDeletion();**
MessageBox.Show("Recorde Deleted sucessfully.","Delete",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
else if (delete.Equals(0))
{
MessageBox.Show("Recorde is not deleted.","Falied",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}
}


private void ImageDeletion()
{
string ext;
ext = Path.GetExtension(txtImgPathD.Text.Trim());
if (!string.IsNullOrWhiteSpace(ext))
{
string path = appPath + @"\" + @"EmployeeImages\" + cmbEmpId.SelectedValue.ToString().Trim() + ext;
PictureBox.InitialImage = null;
PictureBox.Invalidate();
PictureBox.Image = null;
PictureBox.Refresh();
File.Delete(path);
}
}

请给我一个删除文件部分的解决方案。谢谢!

最佳答案

此处的错误消息告诉您所有您需要知道的信息 - 您的文件已被某些东西占用,因此您无法删除它。

您是否在应用程序的其他地方打开了文件,但没有正确关闭文件流?

关于c# - 如何在 C# 中关闭该文件进程后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055748/

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