Copiar o mover un fichero
Artículo por Club Developers · 22 mayo 2006
3422 vistas
Copiar ficheros:
El API no proporciona ninguna solución para la copia de ficheros, no obstante, aquà presentamos un trozo de código que tendrÃa que funcionar.
Mover un fichero:
Podemos realizar el desplazamiento de un fichero gracias al método renameTo(java.io.File) de la clase java.io.File. Pero esta solución sólo funciona dentro de en un disco físico...
Vamos pues a usar el algoritmo de copia cuando el cambio de nombre no sea suficiente:
El API no proporciona ninguna solución para la copia de ficheros, no obstante, aquà presentamos un trozo de código que tendrÃa que funcionar.
java
/** copia el fichero source en el fichero destination * devuelve true si funciona correctamente */ {     boolean resultado = false;     // declaración del flujo     try {         // creamos fichero         destination.createNewFile();         // abrimos flujo         // lectura por segmentos de 0.5Mb         byte buffer[]=new byte[512*1024];         int nbLectura;         while( (nbLectura = sourceFile.read(buffer)) != -1 ) {             destinationFile.write(buffer, 0, nbLectura);         }         // copia correcta         resultat = true;     } finally {         // pase lo que pase, cerramos flujo         try {             sourceFile.close();         try {             destinationFile.close();     }     return( resultat ); }
Mover un fichero:
Podemos realizar el desplazamiento de un fichero gracias al método renameTo(java.io.File) de la clase java.io.File. Pero esta solución sólo funciona dentro de en un disco físico...
Vamos pues a usar el algoritmo de copia cuando el cambio de nombre no sea suficiente:
java
    if( !destination.exist() ) {         // intentamos con renameTo         boolean result = source.renameTo(destination);         if( !result ) {             // intentamos copiar             result = true;             result &= copiar(source, destination);             result &= source.delete();         } return(result);     } else {         // Si el fichero destination existe, cancelamos...         return(false);     } }