Esta es una pregunta horrible (en mi mente) y he hecho todo lo posible para encontrar documentación útil con poca suerte. De todos modos, aquí va:Java File.list() orden consistente?
Tengo un código que necesita hacer alguna operación en todos los archivos un directorio. Configuré el directorio en un objeto File y uso fileObject.list() para iterar sobre los archivos en el directorio. Dejé este código funcionando durante la noche y se bloqueó (después de mucho resuello) en algún momento. Estoy tratando de averiguar en qué momento sucedió esto (sí, tuve una tala horrible). Ahora, de acuerdo con this javadoc no hay garantía de un pedido (alfabético o de otro tipo) al listar los archivos, me pregunto si hay alguna garantía de coherencia. Es decir, cuando ejecuto el mismo código dos veces, ¿obtendré el mismo orden de archivos? La lógica me dice que debería y he reanudado las operaciones en base a eso, pero sospecho de esto. Además, tengo curiosidad sobre lo que "no significa una orden específica" del javadoc.
Si quiere garantizar el pedido, ¿por qué no utilizar un 'Comparador'? – mre
Los archivos pueden cambiar mientras la aplicación se está ejecutando ... por lo que podría hacer las cosas diferentes en cada ejecución. El orden probablemente dependa de la implementación del sistema de archivos. Lo más probable es que la respuesta sea "sí, hay consistencia", como si hicieras un "ls" o "dir" en una línea de comando, te dará consistencia pero no garantizará la clasificación alfabética. – ricosrealm
Ah sí, lo haría (ahora), pero esto es para reanudar una ejecución que falló y no quiero repetir los archivos procesados. – kyun