临时文件不会被删除

时间:2018-01-21 03:40:10

标签: c# windows

您好我实际创建的程序可以在触发事件时删除所有临时文件和文件夹。所以为此我使用以下代码,但它不工作并抛出异常

enter image description here

此外,我正在使用代码

   private void tempfiles_Click(object sender, EventArgs e)
    {
        if(tempcheck.Checked)
        {
            string tempPath = System.IO.Path.GetTempPath();
            System.IO.DirectoryInfo di = new DirectoryInfo(tempPath);
            try
            {
                foreach (FileInfo file in di.GetFiles())
                {
                    file.Delete();
                }
                foreach (DirectoryInfo dir in di.GetDirectories())
                {
                    dir.Delete(true);
                }
            }
            catch(Exception env)
            {
                MessageBox.Show("Please close all the applications and try \n" + env);
            }
        }
        else
        {
            MessageBox.Show("Please check the checkbox");
        }
    }

这里我想删除文件夹和文件,没有任何异常,但在java中我使用像fileonclose()这样的方法。

1 个答案:

答案 0 :(得分:1)

如果其他程序正在使用文件,您将无法删除它们。您应该将try...catch语句放在每个for循环中。这样,即使一次尝试失败,您也可以继续尝试删除文件。

为了使您的程序更有用,您可以跟踪哪些文件未被删除,并创建日志或打开一个窗口以向用户显示文件名。