Как получить последние 50 файлов в папке на основе времени создания файла
У меня есть папка, содержащая тысячи файлов. Я планирую прочитать последние 50 файлов на основе даты создания, Java по умолчанию читает файлы, созданные самыми старыми, сравнение каждого файла занимает много времени, есть ли лучший способ сделать это?
у меня есть папка\usr\documents\archive
иметь 1000 файлов в нем, хотите прочитать 50 документов в папке на основе создания файла.
1 ответ
Вы можете использовать следующее, чтобы получить время создания или последнего изменения
BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
FileTime fileTime = attr.creationTime();
ИЛИ
FileTime creationTime = (FileTime) Files.getAttribute(path, "creationTime");
Теперь, когда вы можете взять время создания (или время последней модификации), вы можете сортировать файлы по времени создания.
Предупреждение. Итерация каждого файла/каталога потребует времени, но это зависит от вашего варианта использования. Я бы сделал это, если задача выполняется в фоновом режиме, но не для операции, в которой пользователь ждет. Я бы использовал кеш для периодической обработки и сохранения результатов для операций, с которыми сталкивается пользователь.