Как получить последние 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");

Теперь, когда вы можете взять время создания (или время последней модификации), вы можете сортировать файлы по времени создания.

Предупреждение. Итерация каждого файла/каталога потребует времени, но это зависит от вашего варианта использования. Я бы сделал это, если задача выполняется в фоновом режиме, но не для операции, в которой пользователь ждет. Я бы использовал кеш для периодической обработки и сохранения результатов для операций, с которыми сталкивается пользователь.

Другие вопросы по тегам