通過上次修改日期獲取文件的最快方式是什麼? 我有一個txt文件的目錄。用戶可以按日期進行研究,按last change日期(在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());
}
}
獲得更快的網絡。 – 2013-04-24 13:47:55
是的,但它是一個公司網絡。這些文件在服務器上,當我在同一棟建築物中訪問此服務器時,速度非常快(如每個文件0.11s),但是當我在其他城市請求時訪問它時,大約需要1,30分鐘。 – 2013-04-25 06:52:30