【问题标题】:Return sorted directory folders by name按名称返回排序的目录文件夹
【发布时间】:2013-03-19 08:42:59
【问题描述】:

我有一个目录路径 c:\W,其中包含文件夹列表 -

01_C
02_B
03_A
04_F

我希望对目录文件夹进行排序并返回以下输出 -

A
B
C
F

我正在使用 .net 4。

【问题讨论】:

  • 请阅读 FAQHow to Ask 几遍..
  • 目前我使用 directoryinfo getdirectories 方法遍历文件夹并使用子字符串删除文件夹名称的第一部分。不知道怎么排序。

标签: c# sorting directoryinfo


【解决方案1】:

如果您想按目录名称的最后一个字符排序,则:

DirectoryInfo di = new DirectoryInfo("c:\\w");
List<string> dirList = di.GetDirectories()
                         .Select(r => r.Name)
                         .OrderBy(r => r[r.Length - 1])
                         .ToList();

记得在顶部添加using System.Linq

【讨论】:

    【解决方案2】:
    DirectoryInfo d = new DirectoryInfo(@"C:\W");
    var sorted = d.GetDirectories().Select(f => f.Name.Split('_')[1]).OrderBy(name => name);
    

    请注意,这里没有任何错误处理,只是一个让您滚动的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多