2015-08-26 4 views
0

Есть ли лучший способ (быстрее) сделать то же самое? Если есть много папок.
Я немного знаю об алгоритмах, надеюсь, кто-то может дать мне лучший алгоритм для этого.Самый быстрый и простой способ вывода папок Рекурсия как дерево

Я делаю работу, используя код следующим образом:

 private static void ShowAllFoldersUnder(string path, int indent) 
     { 
      try 
      { 
       if ((File.GetAttributes(path) & FileAttributes.ReparsePoint) 
        != FileAttributes.ReparsePoint) 
       { 
        foreach (string folder in Directory.GetDirectories(path)) 
        { 
         Console.WriteLine(
          "{0}{1}", new string(' ', indent), Path.GetFileName(folder)); 
         ShowAllFoldersUnder(folder, indent + 2); 
        } 
       } 
      } 
      catch (UnauthorizedAccessException ex) { 
       Console.WriteLine(ex.Message); 
      }  
     } 

результат Выходного образца

CompositeUI 
    BuilderStrategies 
    Collections 
    Commands 
    Configuration 
    Xsd 
    EventBroker 
    Instrumentation 
    obj 
    Debug 
     TempPE 
    Properties 
    Services 
    SmartParts 
    UIElements 
    Utility 
    Visualizer 
+0

Используется этот код много раз. Это идеально. – jdweng

ответ

0

EnumerateDirectories может быть быстрее, потому что он не должен выделять массив имен папок, GetDirectories.

Смежные вопросы