Метод Files.walk возвращает поток пути (см. Документы ), и вы можете вызывать «отсортированный» метод, реализуя свой собственный компаратор, который позволяет сортировать поток на основе любого атрибута, который вы хотите.
Вы можете сделать что-то подобное, если хотите отсортировать файлы по дате создания:
Files.walk(indir, 1, FileVisitOption.FOLLOW_LINKS)
.sorted(
new Comparator<Path>() {
public int compare(Path p1, Path p2) {
return Files.readAttributes(p1, BasicFileAttributes.class).creationTime().toMillis() -
Files.readAttributes(p2, BasicFileAttributes.class).creationTime().toMillis();
}
}
)
.filter(Files::isRegularFile)
.filter(f -> f.getFileName().toString().matches("OFFENE_LIEFERORDERS.*\\.csv"))
.forEachOrdered(f -> {
try {
oMappingFileImporter.importFile(f);
Path moved = Files.move(f.toAbsolutePath(), doneDir.resolve(f.getFileName()), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
});
При этом используется класс java .nio.file.attribute.BasicFileAttributes, поэтому вы должны импортировать это в начало вашего файла.