2015-10-07 55 views
2

我无法删除临时文件夹目录。这是我的代码:垃圾清理程序无法删除临时文件夹

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!"); 
    } 
} 
+0

告诉我们该错误信息是什么。疯狂的猜测是你没有权限删除该目录。 – Rotem

+8

临时文件由许多Windows应用程序和Windows本身创建。首先许多文件将被使用,那么你不能删除该目录,其次......你不应该删除该文件夹! –

+0

好的,当我运行程序并点击“清理”按钮时,它说目录不是空的。 – DialUp

回答

3

您可以使用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

+0

感谢您的帮助,我会尝试一下。 – DialUp