【问题标题】:Junk cleaning program cannot delete temporary folder垃圾清理程序无法删除临时文件夹
【发布时间】:2016-01-04 09:42:15
【问题描述】:

我无法删除临时文件夹目录。这是我的代码:

private void button8_Click(object sender, EventArgs e)
{
    if(checkBox5.Checked == true)
    {
        try
        {
            string fileDirectory = @"C:\Users\Admin\AppData\Local\Temp";
            if(Directory.Exists(fileDirectory))
            {
                Directory.Delete(fileDirectory);
            }
        }
        catch(IOException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    else
    {
        MessageBox.Show("System has been cleaned!");
    } 
}

【问题讨论】:

  • 告诉我们错误信息是什么。一个疯狂的猜测是您没有删除该目录的权限。
  • 临时文件由许多 Windows 应用程序和 Windows 本身创建。首先,许多文件将被使用,然后你不能删除那个目录,其次......你不应该删除那个文件夹!!!
  • 好的,所以当我运行程序并单击“清理”按钮时,它说目录不为空。
  • 修改directory.delete(filedirectory)为directory.delete(filedirectory,true)
  • 删除该文件夹的内容而不是文件夹。您无法轻松地重新创建该文件夹,它可能具有特殊权限。

标签: c# .net exception io


【解决方案1】:

您可以使用Path.GetTempPath() 获取当前用户的临时文件夹。 您不应该删除 Temp 目录本身。最好删除它的文件,跳过所有不能删除的文件:

System.IO.DirectoryInfo tempDir = new DirectoryInfo(Path.GetTempPath());

foreach (FileInfo file in tempDir.GetFiles())
{
    try
    {
        file.Delete(); 
    }
    catch(IOException ex)
    {
        .....
    }
}

另请参阅:"Directory is not empty" error when trying to programmatically delete a folder

【讨论】:

  • 感谢您的帮助,我会尝试一下。
猜你喜欢
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多