2017-06-11 1 views
0

Ich bin in C# codieren, wenn Sie den Code nicht zur Verfügung stellen können, aber Sie können erklären, wie Sie das Ergebnis erreichen, bitte antworten Sie.Wie bekomme ich Verzeichnisse eines Ordners und dann das Verzeichnis seiner Verzeichnisse und so weiter ...?

Ich möchte die Namen (Pfad) aller Ordner und Dateien in einem Verzeichnis haben und dann haben ihre Unterverzeichnisse und Dateien und so weiter, bis keine mehr übrig sind.

In einfachen Worten möchte ich das gesamte Verzeichnis zuordnen.

Ich möchte eine Ausgabe ähnlich der tree Befehl in Eingabeaufforderung aber nur Pfade: ├── dirPath (level 0) │ └── f1 (level 1) │ │ └──f0 (level 2) │ │ │ └──file.txt (level 3) │ │ │ └──f4 (level 3) │ │ └──f3 (level 2) │ └── f2 (level 1)

-Code, die ich verwendet habe, aber nicht zurück, was ich will:

foreach (string dir in Directory.GetDirectories(dirPath)) { 
     Console.WriteLine(dir); 
} 

Ausgabe (gibt nur die Ebene 1 zurück)

dir/f1 
dir/f2 

auch versucht, diesen Code:

foreach (string dir in Directory.GetDirectories(dirPath)) { 
     foreach(string subdir in Directory.GetDirectories(dir)) { 
      Console.WriteLine(subdir); 
     } 
     Console.WriteLine(dir); 
} 

Ausgang (kehrt Stufe 1 und 2)

dir/f1/f0 
dir/f1/f3 
dir/f1 
dir/f2 

Was ich wollen

dir/f1/f0/file.txt 
dir/f1/f0/f4 
dir/f1/f3 
dir/f1 
dir/f2 

Gibt es trotzdem zu erreichen, Dies? Der "Getting Files" Teil ist kein Problem, wenn wir die Verzeichnispfade bekommen können, können wir foreach loop für Dateien verwenden.

Vielen Dank.

Antwort

1
string path = @"C:\YourPath"; 
string[] folders = Directory.GetDirectories(path, "*", SearchOption.AllDirectories); 
string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); 
List<string> filesAndFolders = folders.Union(files).ToList(); 
filesAndFolders.Sort(); 
Verwandte Themen