Ich möchte Dateien mit Java von einem Verzeichnis in ein anderes (Unterverzeichnis) kopieren. Ich habe ein Verzeichnis, dir, mit Textdateien. Ich iteriere über die ersten 20 Dateien in dir und möchte sie in ein anderes Verzeichnis im dir-Verzeichnis kopieren, das ich direkt vor der Iteration erstellt habe. Im Code möchte ich die review
(die die i-te Textdatei oder Überprüfung darstellt) nach kopieren trainingDir
. Wie kann ich das machen? Es scheint keine solche Funktion zu geben (oder ich konnte sie nicht finden). Danke dir.
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];
}
Antworten:
Im Moment sollte dies Ihr Problem lösen
FileUtils
Klasse aus der Apache Commons-Io- Bibliothek, verfügbar seit Version 1.2.Es scheint eine bessere Idee zu sein, Tools von Drittanbietern zu verwenden, anstatt alle Dienstprogramme selbst zu schreiben. Dies kann Zeit und andere wertvolle Ressourcen sparen.
quelle
FileUtils.copyDirectory(source,dest)
zuFileUtils.copyFile(source, dest)
, kann dieses Verzeichnis erstellen , wenn es nicht vorhandenIn der Standard-API gibt es (noch) keine Dateikopiermethode. Ihre Optionen sind:
quelle
In Java 7 gibt es eine Standardmethode zum Kopieren von Dateien in Java:
Files.copy.
Es lässt sich für hohe Leistung in native O / S-E / A integrieren.
Sehen Sie meine A on Standard prägnante Möglichkeit, eine Datei in Java zu kopieren? für eine vollständige Beschreibung der Verwendung.
quelle
Das folgende Beispiel aus Java-Tipps ist ziemlich einfach. Ich bin seitdem zu Groovy gewechselt, um mich mit dem Dateisystem zu befassen - viel einfacher und eleganter. Aber hier sind die Java-Tipps, die ich in der Vergangenheit verwendet habe. Es fehlt die robuste Ausnahmebehandlung, die erforderlich ist, um es kinderleicht zu machen.
quelle
sourceLocation.exists()
für den Fall zu verhindernjava.io.FileNotFoundException
Wenn Sie eine Datei kopieren und nicht verschieben möchten, können Sie wie folgt codieren.
quelle
Spring Framework hat viele ähnliche Util-Klassen wie Apache Commons Lang. Also da ist
org.springframework.util.FileSystemUtils
quelle
Apache Commons Fileutils ist praktisch. Sie können unten Aktivitäten tun.
Kopieren der Datei von einem Verzeichnis in ein anderes Verzeichnis.
verwenden
copyFileToDirectory(File srcFile, File destDir)
Kopieren des Verzeichnisses von einem Verzeichnis in ein anderes Verzeichnis.
verwenden
copyDirectory(File srcDir, File destDir)
Kopieren des Inhalts einer Datei in eine andere
verwenden
static void copyFile(File srcFile, File destFile)
quelle
quelle
Quelle: https://docs.oracle.com/javase/tutorial/essential/io/copy.html
quelle
Apache Commons FileUtils ist praktisch. Wenn Sie nur Dateien von der Quelle in das Zielverzeichnis verschieben möchten, anstatt das gesamte Verzeichnis zu kopieren, haben Sie folgende Möglichkeiten:
Wenn Sie Verzeichnisse überspringen möchten, haben Sie folgende Möglichkeiten:
quelle
Sie scheinen nach einer einfachen Lösung zu suchen (eine gute Sache). Ich empfehle die Verwendung von Apache Common FileUtils.copyDirectory :
Ihr Code könnte so nett und einfach aussehen:
quelle
Inspiriert von Mohits Antwort in diesem Thread . Gilt nur für Java 8.
Folgendes kann verwendet werden, um alles rekursiv von einem Ordner in einen anderen zu kopieren:
FTW im Stream-Stil.
Update 10.06.2019: Wichtiger Hinweis: Schließen Sie den vom Files.walk-Aufruf erfassten Stream (z. B. mithilfe von Try-with-Resource). Vielen Dank an @jannis für den Punkt.
quelle
Files.walk(source)
wie in den Dokumenten empfohlen, oder Sie könnten in Schwierigkeiten geratenUnten finden Sie Brians geänderten Code, der Dateien vom Quellspeicherort zum Zielspeicherort kopiert.
quelle
Java 8
Kopiermethode
quelle
Sie können das Problem umgehen, indem Sie die Quelldatei in eine neue Datei kopieren und das Original löschen.
quelle
Verwenden
org.apache.commons.io.FileUtils
Es ist so praktisch
quelle
quelle
Die NIO-Klassen machen dies ziemlich einfach.
http://www.javalobby.org/java/forums/t17036.html
quelle
Ich verwende den folgenden Code, um eine
CommonMultipartFile
in einen Ordner hochgeladene Datei zu übertragen und diese Datei in einen Zielordner im Webapps (dh) Webprojektordner zu kopieren.quelle
Datei aus einem Verzeichnis in ein anderes Verzeichnis kopieren ...
quelle
Hier ist einfach ein Java-Code, um Daten von einem Ordner in einen anderen zu kopieren. Sie müssen nur die Eingabe der Quelle und des Ziels geben.
Dies ist ein funktionierender Code für das, was Sie wollen. Lassen Sie mich wissen, ob es geholfen hat
quelle
Mit dem folgenden Code können Sie Dateien von einem Verzeichnis in ein anderes kopieren
quelle
quelle
fileChooser
?Der folgende Code zum Kopieren von Dateien von einem Verzeichnis in ein anderes
quelle
quelle
Nicht einmal so kompliziert und keine Importe in Java 7 erforderlich:
Die
renameTo( )
Methode ändert den Namen einer Datei:public boolean renameTo( File destination)
Um beispielsweise den Namen der Datei
src.txt
im aktuellen Arbeitsverzeichnis in zu änderndst.txt
, schreiben Sie:Das ist es.
Referenz:
Harold, Elliotte Rusty (16.05.2006). Java I / O (S. 393). O'Reilly Media. Kindle Edition.
quelle
Mit dem folgenden Code können Sie Dateien von einem Verzeichnis in ein anderes kopieren
quelle
Nach rekursiver Funktion habe ich geschrieben, ob es jemandem hilft. Es werden alle Dateien im Quellverzeichnis in das Zielverzeichnis kopiert.
Beispiel:
rfunction("D:/MyDirectory", "D:/MyDirectoryNew", "D:/MyDirectory");
quelle
Wenn Sie keine externen Bibliotheken verwenden möchten und die Klassen java.io anstelle der Klassen java.nio verwenden möchten, können Sie mit dieser übersichtlichen Methode einen Ordner und seinen gesamten Inhalt kopieren:
quelle
Meines Wissens nach ist der beste Weg wie folgt:
quelle