Je souhaite copier des fichiers d'un répertoire à un autre (sous-répertoire) en utilisant Java. J'ai un répertoire, dir, avec des fichiers texte. J'itère les 20 premiers fichiers dans dir et je souhaite les copier dans un autre répertoire du répertoire dir, que j'ai créé juste avant l'itération. Dans le code, je veux copier le review
(qui représente le ième fichier texte ou révision) dans trainingDir
. Comment puis-je faire ceci? Il ne semble pas y avoir une telle fonction (ou je n'ai pas pu trouver). Je vous remercie.
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];
}
Réponses:
Pour l'instant, cela devrait résoudre votre problème
FileUtils
classe de la bibliothèque apache commons-io , disponible depuis la version 1.2.Utiliser des outils tiers au lieu d'écrire tous les utilitaires par nous-mêmes semble être une meilleure idée. Cela peut faire gagner du temps et d’autres ressources précieuses.
la source
FileUtils.copyDirectory(source,dest)
àFileUtils.copyFile(source, dest)
, cela peut créer un répertoire s'il n'existe pasIl n'y a pas (encore) de méthode de copie de fichier dans l'API standard. Vos options sont:
la source
Dans Java 7, il existe une méthode standard pour copier des fichiers en java:
Copie de fichiers.
Il s'intègre aux E / S natives O / S pour des performances élevées.
Voir mon A sur la manière concise standard de copier un fichier en Java? pour une description complète de l'utilisation.
la source
L'exemple ci-dessous de Java Tips est plutôt simple. Depuis, je suis passé à Groovy pour les opérations traitant du système de fichiers - beaucoup plus facile et élégant. Mais voici les conseils Java que j'ai utilisés dans le passé. Il ne dispose pas de la gestion robuste des exceptions qui est nécessaire pour le rendre infaillible.
la source
sourceLocation.exists()
en cas d'empêcherjava.io.FileNotFoundException
Si vous voulez copier un fichier et ne pas le déplacer, vous pouvez coder comme ceci.
la source
Spring Framework a de nombreuses classes utilitaires similaires comme Apache Commons Lang. il y a donc
org.springframework.util.FileSystemUtils
la source
apache commons Fileutils est pratique. vous pouvez faire les activités ci-dessous.
copier le fichier d'un répertoire vers un autre répertoire.
utilisation
copyFileToDirectory(File srcFile, File destDir)
copie du répertoire d'un répertoire vers un autre répertoire.
utilisation
copyDirectory(File srcDir, File destDir)
copie du contenu d'un fichier dans un autre
utilisation
static void copyFile(File srcFile, File destFile)
la source
la source
Source: https://docs.oracle.com/javase/tutorial/essential/io/copy.html
la source
Apache commons FileUtils sera pratique, si vous voulez seulement déplacer les fichiers du répertoire source vers le répertoire cible plutôt que de copier tout le répertoire, vous pouvez faire:
Si vous souhaitez ignorer les répertoires, vous pouvez faire:
la source
Vous semblez chercher la solution simple (une bonne chose). Je recommande d'utiliser FileUtils.copyDirectory d' Apache Common :
Votre code pourrait être agréable et simple comme ceci:
la source
Inspiré par la réponse de Mohit dans ce fil . Applicable uniquement pour Java 8.
Les éléments suivants peuvent être utilisés pour tout copier de manière récursive d'un dossier à un autre:
FTW de style Stream.
Mise à jour 2019-06-10: note importante - fermez le flux (par exemple en utilisant try-with-resource) acquis par l'appel Files.walk. Merci à @jannis pour le point.
la source
Files.walk(source)
comme recommandé dans la documentation ou vous pourriez avoir des ennuisVous trouverez ci-dessous le code modifié de Brian qui copie les fichiers de l'emplacement source à l'emplacement de destination.
la source
Java 8
Méthode de copie
la source
Vous pouvez contourner le problème en copiant le fichier source dans un nouveau fichier et en supprimant l'original.
la source
Utilisation
org.apache.commons.io.FileUtils
C'est tellement pratique
la source
la source
Les classes NIO rendent cela assez simple.
http://www.javalobby.org/java/forums/t17036.html
la source
J'utilise le code suivant pour transférer un
CommonMultipartFile
fichier téléchargé dans un dossier et copier ce fichier dans un dossier de destination dans le dossier de projet Web Webapps (c'est-à-dire),la source
Copier le fichier d'un répertoire vers un autre répertoire ...
la source
voici simplement un code java pour copier des données d'un dossier à un autre, il suffit de donner l'entrée de la source et de la destination.
c'est un code de travail pour ce que vous voulez .. dites-moi si cela a aidé
la source
Vous pouvez utiliser le code suivant pour copier des fichiers d'un répertoire à un autre
la source
la source
fileChooser
?code suivant pour copier des fichiers d'un répertoire à un autre
la source
la source
Pas même si compliqué et aucune importation requise dans Java 7:
La
renameTo( )
méthode change le nom d'un fichier:public boolean renameTo( File destination)
Par exemple, pour changer le nom du fichier
src.txt
dans le répertoire de travail actuel endst.txt
, vous écrirez:C'est tout.
Référence:
Harold, Elliotte Rusty (16/05/2006). E / S Java (p. 393). O'Reilly Media. Édition Kindle.
la source
Vous pouvez utiliser le code suivant pour copier des fichiers d'un répertoire à un autre
la source
Suite à la fonction récursive que j'ai écrite, si cela aide quelqu'un. Il copiera tous les fichiers de sourcedirectory dans destinationDirectory.
exemple:
rfunction("D:/MyDirectory", "D:/MyDirectoryNew", "D:/MyDirectory");
la source
Si vous ne souhaitez pas utiliser de bibliothèques externes et que vous souhaitez utiliser les classes java.io au lieu des classes java.nio, vous pouvez utiliser cette méthode concise pour copier un dossier et tout son contenu:
la source
Le meilleur moyen selon mes connaissances est le suivant:
la source