我知道如果你想删除一个目录,你必须先删除它的所有文件。
但是,如果要删除包含空子目录的目录,是否必须先删除这些子目录?或者你可以继续删除主目录吗?
我知道如果你想删除一个目录,你必须先删除它的所有文件。
但是,如果要删除包含空子目录的目录,是否必须先删除这些子目录?或者你可以继续删除主目录吗?
Directory.Delete将递归标志设置为 true,应该可以完成这项工作,无需先清空它们。
Directory.Delete(path, true);
我刚刚注意到您的标签指的是独立存储,在这种情况下,您需要枚举所有文件和文件夹并随时删除。 如何:删除隔离存储中的文件和目录
您可以尝试递归删除:
var path = Path.GetFullPath(@"C:\Temp\DeleteMe");
Directory.Delete(path,true); // true for recursive
如果您拥有适当的权限,这应该会删除包括文件在内的所有内容。
无论如何,当您要删除它时,为什么要检查它是否为空。
Directory.Delete(yourpath,true)
只有当您确定目录中没有任何readonly
文件时,您才能使用该方法。否则它会抛出一个exception
. 相反,您可以使用自己的递归方法,该方法首先将文件标记为正常,然后再将其删除。
public static void DeleteDirectory(string target_dir)
{
string[] files = Directory.GetFiles(target_dir);
string[] dirs = Directory.GetDirectories(target_dir);
foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
foreach (string dir in dirs)
{
DeleteDirectory(dir);
}
Directory.Delete(target_dir, false);
}