如何在某些条件下获取多个文件夹中的文件名

时间:2016-11-03 13:22:06

标签: c# string linq file directory

如果我有这样的路径:

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

并在此路径文件夹中这样:

20160314_002_874
20160314_004_657
20160314_006_169
20160315_006_169
20160316_006_169

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

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

2 个答案:

答案 0 :(得分:2)

使用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<string> fileNames = files.Select(f => f.FullName);获取带路径的文件名。

答案 1 :(得分:1)

let data = Data(bytes: array)
let string = String(data: data, encoding: .utf8)

您将获得与此日期匹配的所有子目录: 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获取文件名列表来获取文件。