我有一个包含多个文件的目录。我想按修改后的日期对文件进行排序。
E.g。
file1.csv (created 14:00:55)
file2.csv (created 14:02:55)
file3.csv (created 15:22:55)
file4.csv (created 15:25:55)
file5.csv (created 16:28:55)
将file1
与设定时间进行比较,例如13:59(file1 = 1分钟差异),file1
file2
(文件2 = 2分钟差异),file2
file3
(文件3 = 1小时20分钟)差异),file3
与file4
(文件4 = 3分钟差异),file4
与file5
(文件5 = 1小时差异)。并根据差异列出它们。该列表现在应该是:
file3.csv (created 15:22:55)
file5.csv (created 14:28:55)
file4.csv (created 15:25:55)
file1.csv (created 14:00:55)
file2.csv (created 15:02:55)
答案 0 :(得分:3)
这方面的技巧是将文件(名称和实际修改时间)封装在一起,以及用于对列表进行排序的值。即,你这样做:
根据您的数据,假设原始订单是文件名,开始时间是13:59:00
Original Calculated
Data Sort Key
----------------------------- ----------
file1.csv (created 14:00:55) 1:55
file2.csv (created 14:02:55) 1:00
file3.csv (created 15:22:55) 20:00
file4.csv (created 15:25:55) 5:00
file5.csv (created 16:28:55) 3:00
按“计算的排序键”列(降序)排序可以为您提供所需的内容。
这是Java中的一个示例(未经测试):
class FileWithTimeOffset implements Comparable<FileWithTimeOffset>
{
String fileName;
Date creationDate;
int timeOffset;
public int compareTo(FileWithTimeOffset other)
{
// return negative of comparison to achieve descending sort
return -Integer.compare(this.timeOffset,other.timeOffset);
}
}