我有c#代码从文件夹中获取pdf文件。
string[] pdfFiles = Directory.GetFiles(EnvSettingsTools.FilePath.ToString(), "*.pdf")
.Select(path => Path.GetFileNameWithoutExtension(path))
.ToArray();
如何使用此代码按日期过滤来获取文件。文件格式为
LondoPage 20160301.pdf
我需要使用文件名末尾的日期过滤文件。即,如果我通过日期' 20160301'提到的文件应该选择。
答案 0 :(得分:1)
尝试
var date = "20160301";
string[] pdfFiles = Directory.GetFiles(EnvSettingsTools.FilePath.ToString(), "*.pdf")
.Select(path => Path.GetFileNameWithoutExtension(path))
.Where(f => f.EndsWith(date))
.ToArray();
答案 1 :(得分:1)
这将获得名称以您为筛选器传递的日期结束的文件:
var date = "20160301";
string[] pdfFiles = Directory.GetFiles(EnvSettingsTools.FilePath.ToString(), "*.pdf")
.Select(Path.GetFileNameWithoutExtension)
.Where(f => f.EndsWith(date))
.ToArray();
答案 2 :(得分:0)
我不太了解你想要的结果,但我会做一个有根据的猜测,你需要能够订购或过滤文件夹内容。这可以通过多种方式实现。我会提出解决问题的方法
if (!Directory.Exists(pathToFiles)) return;
DirectoryInfo di = new DirectoryInfo(pathToFiles);
FileSystemInfo[] files = di.GetFileSystemInfos();
var orderedFiles = files.OrderBy(f => f.CreationTime);
var filteredFileByDate = orderedFiles.Where(f => f.FullName.ToLowerInvariant().Split('/').Last().Contains("filterText"));
使用有序文件,您将收到特定属性订购的所有文件,在这种情况下,我选择了创建日期。
使用过滤后的文件,您将收到一个或多个符合您标准的文件的集合。您的标准越精确,您获得的结果就越少。
希望它有所帮助;)