让我们说有一条道路: 的 C:\ TEMP \ TestFolder1 \ TestFolder2
我有一些模板: 的 C:\温度
所以我想编写将按模板删除所有子目录的函数
void DeleteSubdirectories(string tlt, string path) {}
如果我用给定参数调用此函数
DeleteSubdirectories("C:\Temp", "C:\Temp\TestFolder1\TestFolder2");
必须从' C:\ Temp
中删除 TestFolder1 \ TestFolder2 子目录编写此函数的最佳方法是什么?
答案 0 :(得分:4)
如果您想删除“C:\ Temp”,请使用:
System.IO.Directory.Delete(@"C:\Temp", true);
如果您只想删除子目录,请使用以下命令:
foreach (var subDir in new DirectoryInfo(@"C:\Temp").GetDirectories()) {
subDir.Delete(true);
}
答案 1 :(得分:2)
System.IO.Directory.Delete("Path", true);
答案 2 :(得分:2)
只需使用Directory.Delete
- 我链接的重载有一个布尔值,表示是否还应删除子目录。
答案 3 :(得分:0)
你所描述的内容听起来很奇怪,但试试这个:
using System;
using System.IO;
static void DeleteSubDirectories(string rootDir, string childPath)
{
string fullPath = Path.Combine(rootDir, childPath);
Directory.Delete(fullPath);
string nextPath = Path.GetDirectoryName(fullPath);
while (nextPath != rootDir)
{
Directory.Delete(nextPath);
nextPath = Path.GetDirectoryName(nextPath);
}
}
使用它像:
DeleteSubdirectories("C:\Temp", "TestFolder1\TestFolder2");
显然,你必须实现异常处理。