【问题标题】:How to delete subdirectories如何删除子目录
【发布时间】:2010-07-27 08:55:24
【问题描述】:

假设有一些路径: C:\Temp\TestFolder1\TestFolder2

我有一些模板: C:\Temp

所以我想写一个函数,通过模板删除所有子目录

void DeleteSubdirectories(string tlt, string path) {}

如果我用给定的参数调用这个函数

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

它必须从 'C:\Temp

中删除 TestFolder1\TestFolder2 子目录

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

【问题讨论】:

    标签: c# directory


    【解决方案1】:

    如果你也想选择 "C:\Temp",请使用:

    System.IO.Directory.Delete(@"C:\Temp", true);
    

    如果您只想删除子目录,请使用:

    foreach (var subDir in new DirectoryInfo(@"C:\Temp").GetDirectories()) {
        subDir.Delete(true);
    }
    

    【讨论】:

      【解决方案2】:

      你所描述的听起来很奇怪,但试试这个:

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

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

      【讨论】:

        【解决方案3】:

        只需使用Directory.Delete - 我链接的重载有一个布尔值,指示是否也应删除子目录。

        【讨论】:

          【解决方案4】:
          System.IO.Directory.Delete("Path", true);
          

          【讨论】:

          • 如果我这样调用这个方法: Directory.Delete(@"C:\Temp\TestFolder1\TestFolder2", true);它将仅删除 TestFolder2 我不想从 Temp 文件夹和 Temp 文件夹本身中删除所有子目录。我只想删除 Path 参数中的文件夹。在这种情况下:TestFolder1\TestFolder2
          • @Alex,对不起,我不明白你的意思。无论如何,如果您要从Temp 中删除TestFolder1,则必须使用System.IO.Directory.Delete(@"C:\Temp\TestFolder1", true); 来删除所需的目录及其子目录。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-15
          相关资源
          最近更新 更多