Порядок обхода в Files.walkFileTree

Каков порядок, в котором Files.walkFileTree посещает файлы/каталоги на одном уровне?

Кажется, что они не посещают их в порядке размера, последнего измененного времени или имени. Я не мог найти ничего в документации API.

Возможно, метод preVisitDirectory может использоваться для указания порядка посещения, но что такое поведение по умолчанию?

Ответ 1

Порядок чтения подкаталогов не определен в соответствии с этим комментарием в учебнике Java:

В дереве файлов сначала идет глубина, но вы не можете делать какие-либо предположения относительно порядка итераций, которые посещают подкаталоги.

Что касается порядка чтения файлов, это зависит (в текущей реализации) от поставляемого DirectoryStream, который sun.nio.fs.WindowsDirectoryStream на моем компьютере. Чтение javadoc DirectoryStream, вы увидите, что:

Элементы, возвращаемые итератором, не имеют определенного порядка.