【问题标题】:Need help deleting temp directory universally需要帮助普遍删除临时目录
【发布时间】:2018-03-12 22:45:53
【问题描述】:

我在尝试删除目录时遇到了 C# 问题 (C:\Users\Terry\AppData\Local\Temp)。

这是我当前的代码:

private void Button1_Click(object sender, EventArgs e)
{
    var dir = new DirectoryInfo("C:\Users\"+ System.Environment.MachineName + "\AppData\Local\Temp");
    foreach (var file in Directory.GetFiles(dir.ToString()))
    {
        File.Delete(file);
    }
}

此代码对我不起作用。我对 C# 相当陌生,我不熟悉删除目录。有人能帮忙吗?

【问题讨论】:

  • 这完全是懒惰的。显然你没有读过文档,但你甚至没有读过你写的东西。你认为File.Delete 是做什么的?
  • 似乎在 NET 中应该有一两个方法来为我们获取这些文件夹名称。
  • Path.GetTempPath() 将为您提供您所追求的确切路径。还值得查看Environment.GetSpecialFolderPath() 以获取其他特殊文件夹。但是,如果您想删除该目录及其所有文件/子文件夹,您应该调用dir.Delete(true)。如果您要迭代文件,最好使用di.EnumerateFiles(),因为您已经有了DirectoryInfo。或者至少使用di.FullName 而不是ToString(),因为在通过Parent 属性获得的DirectoryInfo 对象上调用ToString() 存在一个已知问题,它只返回名称

标签: c# directory


【解决方案1】:

使用 File.Delete 方法尝试删除文件。您希望 Directory.Delete 方法删除目录。

https://msdn.microsoft.com/en-us/library/fxeahc5f(v=vs.110).aspx

另外,如果您正在创建临时文件或目录,最好使用Path.GetTempPath() 方法。这将适用于所有版本的 Windows,并尊重用户设置的任何环境变量。

https://msdn.microsoft.com/en-us/library/system.io.path.gettemppath(v=vs.110).aspx

【讨论】:

    【解决方案2】:

    我想你正在寻找

    string path = Path.Combine(@"C:\Users", Environment.UserName, @"AppData\Local\Temp" );
    Directory.Delete(path, true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多