首页 > 解决方案 > 从文件名中获取日期部分并使用 c# 根据最新日期进行排序

问题描述

我在目录中有一组文件名为 db.dat.01-30-2021,db.dat.01-30-2020,db.dat.01-30-2018,db.dat.02-28- 2021,db.dat.02-28-2019。日期附加到这些文件中。我想按如下顺序首先获取最新文件。我尝试使用 CreationTime 和 lastwriteaccesstime 但它没有给出预期的结果。请帮助按此顺序获取文件。

db.dat.02-28-2021
db.dat.01-30-2021
db.dat.01-30-2020
db.dat.02-28-2019
db.dat.01-30-2018

Code

 DirectoryInfo dpdirectorySelected = new DirectoryInfo(@"C:\wfiles");
 FileInfo[] files = dpdirectorySelected.GetFiles().OrderBy(p => p.CreationTime).ToArray();
                    
 foreach (FileInfo fi in files)
 {
  var f=Path.GetFileNameWithoutExtension(fi.FullName);
 }

标签: c#filedatesortingdirectory

解决方案


var sortedFiles = Directory.EnumerateFiles(folder, "db.dat.*")
    .OrderByDescending(file => DateTime.ParseExact(Path.GetExtension(file), ".MM-dd-yyyy", null));

推荐阅读