Quiero copiar archivos de un directorio a otro (subdirectorio) usando Java. Tengo un directorio, dir, con archivos de texto. I itero sobre los primeros 20 archivos en dir, y quiero copiarlos a otro directorio en el directorio dir, que he creado justo antes de la iteración. En el código, quiero copiar el review
(que representa el i-ésimo archivo de texto o revisión) en trainingDir
. ¿Cómo puedo hacer esto? Parece que no hay tal función (o no pude encontrar). Gracias.
boolean success = false;
File[] reviews = dir.listFiles();
String trainingDir = dir.getAbsolutePath() + "/trainingData";
File trDir = new File(trainingDir);
success = trDir.mkdir();
for(int i = 1; i <= 20; i++) {
File review = reviews[i];
}
Respuestas:
Por ahora esto debería resolver tu problema
FileUtils
clase de la biblioteca apache commons-io , disponible desde la versión 1.2.El uso de herramientas de terceros en lugar de escribir todas las utilidades por nuestra cuenta parece ser una mejor idea. Puede ahorrar tiempo y otros recursos valiosos.
fuente
FileUtils.copyDirectory(source,dest)
aFileUtils.copyFile(source, dest)
, esto puede crear un directorio si no existeNo existe un método de copia de archivos en la API estándar (todavía). Sus opciones son:
fuente
En Java 7, no es un método estándar para copiar archivos en Java:
Files.copy.
Se integra con E / S nativas de E / S para un alto rendimiento.
¿Ver mi A en forma concisa estándar para copiar un archivo en Java? para una descripción completa del uso.
fuente
El siguiente ejemplo de Java Tips es bastante sencillo. Desde entonces he cambiado a Groovy para operaciones relacionadas con el sistema de archivos, mucho más fácil y elegante. Pero aquí está el Java Tips que usé en el pasado. Carece del manejo robusto de excepciones que se requiere para que sea infalible.
fuente
sourceLocation.exists()
en el caso de prevenirjava.io.FileNotFoundException
Si desea copiar un archivo y no moverlo, puede codificar así.
fuente
Spring Framework tiene muchas clases de utilidades similares como Apache Commons Lang. Entonces alli esta
org.springframework.util.FileSystemUtils
fuente
apache commons Fileutils es útil. puedes hacer debajo de las actividades.
copiando el archivo de un directorio a otro directorio.
utilizar
copyFileToDirectory(File srcFile, File destDir)
copiando el directorio de un directorio a otro directorio.
utilizar
copyDirectory(File srcDir, File destDir)
copiar contenidos de un archivo a otro
utilizar
static void copyFile(File srcFile, File destFile)
fuente
fuente
Fuente: https://docs.oracle.com/javase/tutorial/essential/io/copy.html
fuente
FileUtils de Apache commons será útil, si solo desea mover archivos desde el directorio de origen al de destino en lugar de copiar todo el directorio, puede hacer lo siguiente:
Si desea omitir directorios, puede hacer:
fuente
Parece que estás buscando la solución simple (algo bueno). Recomiendo usar FileUtils.copyDirectory de Apache Common :
Su código podría ser agradable y simple como este:
fuente
Inspirado por la respuesta de Mohit en este hilo . Aplicable solo para Java 8.
Lo siguiente se puede usar para copiar todo recursivamente de una carpeta a otra:
Estilo de transmisión FTW.
Upd 2019-06-10: nota importante: cierre la secuencia (por ejemplo, usando try-with-resource) adquirida por la llamada Files.walk. Gracias a @jannis por el punto.
fuente
Files.walk(source)
como se recomienda en los documentos o podría tener problemasA continuación se muestra el código modificado de Brian que copia archivos de la ubicación de origen a la ubicación de destino.
fuente
Java 8
Método de copia
fuente
Puede solucionar el problema con copiar el archivo fuente a un nuevo archivo y eliminar el original.
fuente
Utilizar
org.apache.commons.io.FileUtils
Es muy útil
fuente
fuente
Las clases de NIO hacen esto bastante simple.
http://www.javalobby.org/java/forums/t17036.html
fuente
uso el siguiente código para transferir un
CommonMultipartFile
archivo cargado a una carpeta y copiar ese archivo a una carpeta de destino en la carpeta de proyecto web webapps (es decir)fuente
Copie el archivo de un directorio a otro directorio ...
fuente
aquí es simplemente un código java para copiar datos de una carpeta a otra, solo tiene que dar la entrada del origen y el destino.
este es un código de trabajo para lo que quieres ... avísame si ayudó
fuente
Puede usar el siguiente código para copiar archivos de un directorio a otro
fuente
fuente
fileChooser
?siguiente código para copiar archivos de un directorio a otro
fuente
fuente
Ni siquiera eso es complicado y no se requieren importaciones en Java 7:
El
renameTo( )
método cambia el nombre de un archivo:public boolean renameTo( File destination)
Por ejemplo, para cambiar el nombre del archivo
src.txt
en el directorio de trabajo actual adst.txt
, escribiría:Eso es.
Referencia:
Harold, Elliotte Rusty (2006-05-16). E / S Java (p. 393). O'Reilly Media. Versión Kindle.
fuente
Puede usar el siguiente código para copiar archivos de un directorio a otro
fuente
Siguiendo la función recursiva que he escrito, si ayuda a alguien. Copiará todos los archivos dentro de sourcedirectory a destinationDirectory.
ejemplo:
rfunction("D:/MyDirectory", "D:/MyDirectoryNew", "D:/MyDirectory");
fuente
Si no desea usar bibliotecas externas y quiere usar las clases java.io en lugar de java.nio, puede usar este método conciso para copiar una carpeta y todo su contenido:
fuente
La mejor manera según mi conocimiento es la siguiente:
fuente