2012-05-01 9 views
10

¿Cuál es el orden en el que Files.walkFileTree visita archivos/directorios en el mismo nivel?Orden de recorrido en Files.walkFileTree

Parece que no los visita por orden de tamaño, hora o nombre modificados. No pude encontrar nada en el API documentation tampoco.

Quizás el método preVisitDirectory se puede usar para especificar el orden de visita, pero ¿cuál es el comportamiento predeterminado?

Respuesta

12

El orden en el que se leen los subdirectorios no se define de acuerdo con este comentario en the Java Tutorial:

Un árbol de archivos se dirigió a fondo en primer lugar, pero no se puede hacer ninguna suposición sobre el orden de iteración que subdirectorios son visitados .

En cuanto al orden en que se leen los archivos, depende (en la implementación actual) en el suministrado DirectoryStream, que es sun.nio.fs.WindowsDirectoryStream en mi equipo. Leyendo the javadoc of DirectoryStream, verá que:

Los elementos devueltos por el iterador no están en un orden específico.

+0

Gracias por la respuesta. Entonces Files.walkTreeFile en algún momento llamará a Files.newDirectoryStream y el DirectoryStream devuelto depende del sistema operativo y/o el jdk/jre? – Sridhar

+0

Básicamente sí. La conclusión es: no codifique asumiendo que recibirá un pedido específico ya que no hay garantía al respecto. – assylias

Cuestiones relacionadas