如何遍历将每个文件夹名称写入字符串数组的文件夹

时间:2014-02-06 21:12:40

标签: c#

我正在尝试遍历文件夹结构,将文件夹A中的每个文件夹名称写入字符串数组。

IE:

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

然后将每个子文件夹中的每个文件名改为单独的字符串数组

我希望能够在C#中做到这一点。有人可以帮我解决这个问题,因为我不知道从这个问题开始。

2 个答案:

答案 0 :(得分: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()
             ;
    }
  }

}

答案 1 :(得分: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