如何删除子目录

时间:2010-07-27 08:55:24

标签: c# directory

让我们说有一条道路: 的 C:\ TEMP \ TestFolder1 \ TestFolder2

我有一些模板: 的 C:\温度

所以我想编写将按模板删除所有子目录的函数

void DeleteSubdirectories(string tlt, string path) {}

如果我用给定参数调用此函数

DeleteSubdirectories("C:\Temp", "C:\Temp\TestFolder1\TestFolder2");

必须从' C:\ Temp

中删除 TestFolder1 \ TestFolder2 子目录

编写此函数的最佳方法是什么?

4 个答案:

答案 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");

显然,你必须实现异常处理。