【问题标题】:Get date part from filenames and sort based on the latest date using c#从文件名中获取日期部分并使用 c# 根据最新日期进行排序
【发布时间】:2021-07-02 21:40:46
【问题描述】:

我在目录中有一组文件名为 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);
 }

【问题讨论】:

  • 你得到了什么结果?
  • 您应该能够使用Path.GetExtension 来提取文件名的日期部分(因为这实际上是扩展名),然后使用代码here 来解析它(不要忘记添加- 在适当的位置以匹配您的日期格式)。
  • 文件名中的日期是否与 CreationTime 相同?
  • db.dat.01-30-2018 db.dat.01-30-2020 db.dat.01-30-2021 db.dat.02-28-2019 db.dat.02- 28-2021
  • @KingOfArrows 不一样

标签: c# file date sorting directory


【解决方案1】:
var sortedFiles = Directory.EnumerateFiles(folder, "db.dat.*")
    .OrderByDescending(file => DateTime.ParseExact(Path.GetExtension(file), ".MM-dd-yyyy", null));

【讨论】:

    【解决方案2】:

    CreationTime 是Date created:,LastAccessTime 是Date accessed:,LastWriteTime 是Date modified:。这些不受附加到文件的日期的影响

    您可以使用FileInfo.Extension(继承自FileSystemInfo)来获取日期部分,因为它实际上是扩展名。

    由于日期已经填充,您可以将p.CreationTime 替换为p.Extension。为确保排序相同,您可以将 StringComparer.InvariantCulture 附加到 OrderBy 调用中。

    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.Extension, StringComparer.InvariantCulture).ToArray();
                        
     foreach (FileInfo fi in files)
     {
      var f=Path.GetFileNameWithoutExtension(fi.FullName);
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 2020-07-02
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多