在 lastmodified 日期之前获取文件的最快方法是什么?我有一个包含一些 txt 文件的目录。用户可以按日期进行研究,我按最后修改日期(在 File[] 中)列出目录中的所有文件,然后搜索具有特定日期的正确文件。我使用使用 lastmodified 日期的集合排序来对我的文件进行排序。当我从本地驱动器获取文件时速度很快,但是当我想访问网络(专用网络)上的驱动器时,获取文件可能需要大约 10 分钟。我知道我不能比网络快,但是有没有比我的解决方案更快的解决方案?
我的代码示例:
File[] files = repertoire.listFiles();
Arrays.sort(files, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return Long.valueOf(o2.lastModified()).compareTo(o1.lastModified());
}
});
for (File element : files) {
// i get the right file;
}
谢谢你的帮助
这是解决方案:
Path repertoiry = Paths.get(repertoire.getAbsolutePath());
final DirectoryStream<Path> stream = Files.newDirectoryStream(repertoiry, new DirectoryStream.Filter<Path>() {
@Override
public boolean accept(Path entry) throws IOException {
return Files.getLastModifiedTime(entry, LinkOption.NOFOLLOW_LINKS).toMillis() >= (dateRechercheeA.getTime() - (24 * 60 * 60 * 1000)) && Files.getLastModifiedTime(entry, LinkOption.NOFOLLOW_LINKS).toMillis() <= (dateRechercheeB.getTime() + (24 * 60 * 60 * 1000));
}
});
for (Path path : stream) {
if (!path.toFile().getName().endsWith("TAM") && !path.toFile().getName().endsWith("RAM")) {
listFichiers.add(path.toFile());
}
}