【发布时间】: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()存在一个已知问题,它只返回名称