static void Main()
{
var list = new List<string>
{
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-12-44-0.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-16-32-1.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-16-32-0.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-16-32-2.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-13\\20-17-25-0.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-12\\20-17-23-0.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-17-27-0.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-17-17-0.mp4",
"D:\\wwwroot\\recode\\catom\\2024-10-11\\20-17-17-1.mp4"
};
var sortedList = SortByDateTimeAndIndex(list);
foreach (var item in sortedList)
{
Console.WriteLine(item);
}
}
static List<string> SortByDateTimeAndIndex(List<string> list)
{
return list.OrderBy(path =>
{
// 提取路径中的日期和时间部分,以及最后的数字
var dateTimePart = path.Split('\\')[^2] + " " + path.Split('\\')[^1].Split('-')[0] + "-" + path.Split('\\')[^1].Split('-')[1] + "-" + path.Split('\\')[^1].Split('-')[2];
// 提取最后的数字
var lastIndex = int.Parse(path.Split('\\')[^1].Split('-')[3].Replace(".mp4", ""));
// 将日期时间解析为 DateTime 并加上最后的索引用于排序
return (DateTime.ParseExact(dateTimePart, "yyyy-MM-dd HH-mm-ss", null), lastIndex);
}).ToList();
}