Actualmente estoy trabajando en el proyecto que procesa archivos del directorio de origen en una de sus rutinas. Hay un proceso de Java que busca el directorio especificado e intenta leer y procesar archivos si existen. Los archivos son dejados de lado y se actualizan por otro proceso de terceros. La pregunta es ¿cómo puedo verificar si el archivo está completamente escrito? Intento usar file.length()
pero parece que incluso si el proceso de escritura no se ha completado, devuelve el tamaño real. Tengo la sensación de que la solución debe depender de la plataforma. Cualquier ayuda sería apreciada.Comprobando si el archivo está completamente escrito
ACTUALIZACIÓN: Esta pregunta no es muy diferente a la del duplicado pero tiene una respuesta con un fragmento de código que está altamente calificado.
¿Ha considerado usar bloqueos de archivos? – cklab
Gracias. Comprobando esto. ¿Podemos estar seguros de que los bloqueos siempre se crean mediante el proceso de escritura? –
Bueno, la noción es que si intentas obtener un bloqueo, debes obtener una excepción. También me encontré con esto: http://docs.oracle.com/javase/7/docs/api/java/io/File.html # canWrite% 28% 29 Nunca lo usaste, pero puedes probarlo para ver cómo funciona. Parece interesante. – cklab