如何删除文件,该文件被另一个进程使用c#
本文关键字:文件 另一个 进程 何删除 删除 | 更新日期: 2023-09-27 18:06:23
在我的c#应用程序中,我想在下面的场景中删除文件。
-
打开filedialog并选择任意.jpg文件
-
在PictureBox中显示文件
-
删除文件
我已经尝试在做第3步时,我将默认图像设置为PictureBox就在删除之前,但这是不工作的。
如何删除文件?请推荐我。
// Code for select file.
private void btnSelet_Click(object sender, EventArgs e)
{
if (DialogResult.OK == openFileDialog1.ShowDialog())
{
txtFileName.Text = openFileDialog1.FileName;
myPictureBox.Image = Image.FromFile(openFileDialog1.FileName);
}
}
// Code for Delete file
private void btnDelete_Click(object sender, EventArgs e)
{
try
{
//myPictureBox.Image = Image.FromFile(System.IO.Directory.GetCurrentDirectory() + @"'Images'defaultImage.jpg");
System.IO.File.Delete(txtFileName.Text);
MessageBox.Show("File Delete Sucessfully");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
替换图像听起来是个好主意-但不要忘记处理仍然保持文件打开的旧Image
(默认情况下,直到Image
被垃圾收集-在未来的某个未知时间):
private void btnDelete_Click(object sender, EventArgs e)
{
try
{
var old = myPictureBox.Image;
myPictureBox.Image = Image.FromFile(System.IO.Directory.GetCurrentDirectory() + @"'Images'defaultImage.jpg");
old.Dispose();
System.IO.File.Delete(txtFileName.Text);
MessageBox.Show("File Delete Sucessfully");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
(也可以直接Dispose
的Image
而不替换PictureBox
的图像-这取决于删除后你要做的其他事情-例如,如果PictureBox
出现的形式正在关闭,你可能想让这种情况先发生,然后直接处理图像)