【问题标题】:How to get files names in multiple folders under some condition如何在某些情况下获取多个文件夹中的文件名
【发布时间】:2017-03-17 02:27:53
【问题描述】:

如果我有这样的路径:

C:\Program Files (x86)\basic\data\

在这个路径文件夹中是这样的:

20160314_002_874
20160314_004_657
20160314_006_169
20160315_006_169
20160316_006_169

如何获取这些文件夹名称的日期部分=特定日期的文件夹中的所有文件名

例如: 我希望文件夹中的所有文件名都以列表中的以下日期(20160314) 开头。

【问题讨论】:

    标签: c# string linq file directory


    【解决方案1】:

    使用DirectoryInfo:

    using System.Collections.Generic;
    using System.IO;
    
    List<FileInfo> files = new List<FileInfo>();
    DirectoryInfo rootDir = new DirectoryInfo(@"C:\Program Files (x86)\basic\data\");
    var directories = rootDir.GetDirectories("20160314*");
    foreach (var directory in directories)
    {
        files.AddRange(directory.GetFiles());
    }
    
    IEnumerable<string> fileNames = files.Select(f => f.Name);
    

    使用IEnumerable&lt;string&gt; fileNames = files.Select(f =&gt; f.FullName);获取带路径的文件名。

    【讨论】:

      【解决方案2】:
       var dirs = Directory.GetDirectories(myPath).Where(x => x.StartsWith(20160314));
       dirs.ForEach(xx => {
           var fullPath = Path.Combine(myPath, xx);
           var files = Directory.GetFiles(fullPath);
           //Files is a string[], do whatever you want
       });
      

      您将获得与此日期匹配的所有子目录:20160314。之后,您可以通过将原始路径与目录名组合并使用GetFiles(string path)获取文件名列表来获取文件。

      【讨论】:

      • 如您所见,它不是我的。举报并向版主报告
      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      相关资源
      最近更新 更多