2016-06-30 16 views
1

ich diesen Code haben:C# lesen Ordner (Namen) aus dem Verzeichnis

 string directory; 
     FolderBrowserDialog fbd = new FolderBrowserDialog(); 
     if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      directory = fbd.SelectedPath; 

      txtSource.Text = directory; 

      DirectoryInfo d = new DirectoryInfo(directory); 
      FileInfo[] Files = d.GetFiles(); 

      List<String> str = new List<string>(); 
      foreach (FileInfo file in Files) 
      { 
       str.Add(file.Name); 
      } 

     } 

Ich habe ein FolderBrowseDialog, wo ich den Pfad des Ordners auswählen. In diesem ausgewählten Ordner befinden sich 3 andere Ordner. Ich möchte diese Namen des Ordners vorlesen. Ich möchte einige Dateien nicht wissen oder vorlesen.

Vielen Dank für hep.

Antwort

2

Sie Directory.GetDirectories() verwenden können:

string[] subdirs = Directory.GetDirectories(fbd.SelectedPath); 

Dies Sie die vollständigen Pfade zu Unterverzeichnisse gibt.

string[] subdirs = Directory.GetDirectories(fbd.SelectedPath) 
          .Select(Path.GetFileName) 
          .ToArray(); 

Oder wenn Sie beide wollen: Wenn Sie nur die Namen der Unterordner müssen, aber nicht den vollständigen Pfad, Sie `Path.GetFileName() verwenden können

var subdirs = Directory.GetDirectories(fbd.SelectedPath) 
          .Select(p => new { 
           Path = p, 
           Name = Path.GetFileName(p)}) 
          .ToArray(); 
+0

Ok, dann habe ich den Weg, wie kann ich den Weg und den Namen bekommen? – MMbach

+0

@MMbach aktualisiert die Antwort –

+0

Okay danke das funktioniert – MMbach