Ignorando mi último post, he encontrado el origen del problema. Estoy usando

a.renameTo(b)

cuando b no existe. La razón por la que no existe es porque hay un enlace simbólico de modo que si b es /usr/name/folder/file, entonces b es realmente /mnt/MountTest debido a que el enlace es a ese directorio.

Así que la pregunta es, ¿hay una forma alternativa de cambiar el nombre de un archivo en Java usando una cadena de valor?
Si no, ¿cómo se puede cambiar el nombre de este procedimiento se realiza de forma diferente?

OriginalEl autor Hristo | 2010-01-06

5 Comentarios

  1. 5

    Un cambio de nombre podría cambiar el nombre… si fuera en el mismo sistema de archivos.

    Si un renameTo() falla, tendrá que copiar a la nueva ubicación y, a continuación, eliminar el original.

    OriginalEl autor Dean J

  2. 5

    Cambiar el nombre de archivos también es muy problemático a través de sistemas de archivos. Ver http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4073756. Los comentaristas del informe de error publicado el código de ejemplo, y también señaló que puede utilizar el Proceso.exec. Tanto Apache Commons IO y de Google y de la Guayaba tiene utilidades para mover archivos de forma segura, así:

    Apache enlace está muerto, por favor, actualice.

    OriginalEl autor big lep

  3. 4

    Creo que se están confundiendo las cosas. Un java.util.El archivo no representan un archivo en algunos sistemas de archivos. Representa una ruta a un archivo.

    OriginalEl autor Trevor Harrison

  4. 3

    El problema no es que un enlace simbólico, el problema es que usted no puede automáticamente cambiar el nombre a través de los sistemas de ficheros. El meta-problema es que el Archivo Java operaciones están mal diseñados, y no tirar adecuada excepciones, y no proporcionan códigos de error cuando algo falla!

    OriginalEl autor Jonathan Feinberg

  5. 1

    Cómo sobre:

    a.renameTo(new File("/your/path/here/");
    que no funciona porque no existe el archivo en la nueva ruta de archivo… el cambio de nombre se utiliza en una manera de imitar el «mv», esencialmente mover el archivo de un directorio a otro
    De hecho, eso es precisamente lo que me causó problemas: la gente que describe renameTo como el equivalente de «mv». mv es consciente de los sistemas de archivos, mientras que renameTo no lo es. Si intenta mv de un disco/partición a otra, actúa como un cp y rm secuencia, que renameTo no.

    OriginalEl autor Poindexter

Dejar respuesta

Please enter your comment!
Please enter your name here