Nunca pensé que iba a pasar a mí, pero me encontré con mi primer error en Java:alternativa a File.Exists() en Java
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003595
estoy más o menos en la misma situación exacta como se describe en el error (NFS en Linux), y veo que File.exists() no devuelve el valor correcto (al menos no de inmediato).
Entonces mi pregunta es, ¿hay alguna alternativa a este método de verificar si existe un archivo? Preferiría mantenerlo OS agnóstico si es posible.
EDIT: He encontrado una solución. Si realiza una llamada a 'ls $ filedir', el NFS actualizará cualquier caché/metadata que esté dando problemas a Java, y File.exists() devolverá el valor correcto. Por supuesto, esto no es totalmente ideal, ya que perjudica la portabilidad, pero hay formas de lidiar con ese problema.
Gracias, -Ben
¿Qué tipo de archivo es? ¿Estás buscando un tipo particular de archivo? ¿O simplemente cualquier archivo? Puede ejecutar System.exec ("ls") y analizar los resultados de su archivo. Aunque estoy seguro de que hay formas más fáciles, lo dejo como un comentario – Falmarri
Este error es específico de Java 1.4.2_03, que llegó al final de su ciclo de vida de soporte años atrás. Por curiosidad, ¿por qué no simplemente migrar a Java 5 o superior? ¿Has intentado probar con un JRE compatible para ver cualquier interrupción? –
@Steve: estoy ejecutando Java 6. Supongo que, dado que marcaron "no se corregirá" para este error, no está solucionado en ninguna versión de Java. Al menos, eso es lo que me dice el comportamiento de mi aplicación. – Ben