Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从文件名中获取日期部分,并使用c根据最新日期进行排序#_C#_File_Date_Sorting_Directory - Fatal编程技术网

C# 从文件名中获取日期部分,并使用c根据最新日期进行排序#

C# 从文件名中获取日期部分,并使用c根据最新日期进行排序#,c#,file,date,sorting,directory,C#,File,Date,Sorting,Directory,我在目录中有一组名为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.da

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

CreationTime是创建日期:,LastAccessTime是访问日期:,LastWriteTime是修改日期:。这些不受附加到文件的日期的影响

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

由于日期已经填充,您可以将
p.CreationTime
换成
p.Extension
。为了确保排序相同,您可以附加到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
代码
DirectoryInfo dpdirectorySelected=newdirectoryinfo(@“C:\wfiles”);
FileInfo[]files=dpdirectorySelected.GetFiles().OrderBy(p=>p.Extension,StringComparer.InvariantCulture).ToArray();
foreach(文件中的文件信息)
{
var f=Path.GetFileNameWithoutExtension(fi.FullName);
}

您得到的结果是什么?您应该能够使用
Path.GetExtension
提取文件名的日期部分(因为这实际上是扩展名),然后使用代码对其进行解析(不要忘记在适当的位置添加
-
,以匹配您的日期格式).文件名中的日期是否与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不一样
var sortedFiles = Directory.EnumerateFiles(folder, "db.dat.*")
    .OrderByDescending(file => DateTime.ParseExact(Path.GetExtension(file), ".MM-dd-yyyy", null));