2014-02-06 39 views
0

我正在嘗試遍歷將文件夾A中的每個文件夾名稱寫入字符串數組的文件夾結構。如何遍歷將每個文件夾名稱寫入字符串數組的文件夾

IE:

Folder A 
    -Folder A1 
    -Folder A2 
    -Folder A3 
    -Folder A4 
    -Folder A5 
    -Folder A6 

,然後是能夠做到這一點在C#內的每個子文件夾的每個文件名到單獨的字符串數組

我想。有人可以幫我解決這個問題,因爲我不確定從哪裏開始解決這個問題。

+0

請記住,當問問題顯示你已經嘗試過的代碼的起點有很長的路要走。 – Travis

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

0

這是另一種方法,你可以做到這一點。你可能仍然可以重構這個

 var path = @"C:\\Katas"; 

     var folders = Directory.GetDirectories(path); //Your string array of folders 

     var files = new List<string>(); 

     foreach (String s in folders) 
     { 
      var fileList = Directory.GetFiles(s).ToList(); 

      files.AddRange(fileList); 

     } 

     files.ToArray(); //Your string array of files 
+1

雖然所有其他答案都非常好,但這是最能幫助我並且最接近我的要求的答案。不用說其他答案非常好。非常感謝您對此事提供的所有協助。 –

0

您已經擁有了:System.IO.DirectoryInfo爲您提供了所有這些,以及更多。但是,在這裏你可以看到一個包裝:

class DirectoryInfoWrapper 
{ 
    private DirectoryInfo BackingStore { get ; set ; } 

    public DirectoryInfoWrapper(DirectoryInfo dir) 
    { 
    this.BackingStore = dir ; 
    return ; 
    } 

    public DirectoryInfoWrapper Parent 
    { 
    get 
    { 
     DirectoryInfo parent = this.BackingStore.Parent ; 
     return parent != null ? new DirectoryInfoWrapper(parent) : null ; 
    } 
    } 

    public string Name 
    { 
    get 
    { 
     return this.BackingStore.Name ; 
    } 
    } 

    public DirectoryInfoWrapper[] Subdirectories 
    { 
    get 
    { 
     return this 
      .BackingStore 
      .EnumerateDirectories() 
      .Select(x => new DirectoryInfoWrapper(x)) 
      .ToArray() 
      ; 
    } 
    } 

    public string[] Files 
    { 
    get 
    { 
     return this 
      .BackingStore 
      .EnumerateFiles() 
      .Select(x => x.Name) 
      .ToArray() 
      ; 
    } 
    } 

} 
相關問題