Ordner samt Dateien kopieren

Timpa1971

Mitglied
Hallo,
Ich habe mal eine Frage, und zwar versuche ich seit geraumer Zeit einen ordner von A nach B zu kopieren, wobei die Dateien samt Inhalt mit kopiert werden.
Ich habe einen kleinen Anfang, das ist aber nicht viel...:
Java:
	public static void Kopieren(File src, File dest) {
		if(src != dest) {
			if(src.exists()) {
				if(dest.exists()) {
					dest.delete();
					//Dateien erstellen
				} else {
					//Dateien erstellen
				}
			}
		}
	}
Ich hoffe ihr könnt mir helfen und freue mich auf Antworten.

MfG, Timpa

PS: Falls es wichtig ist: Ich programmiere mit Eclpise.
 

eMmiE

Bekanntes Mitglied
@PS: Nö eigentlich nicht

@Thema: Du musst auf jeden Fall ein Programm schreiben, das rekursiv erstmal alle Ordner, die da drin stecken auflistet

Die Ordner speicherst du dann als Files in ner ArrayList ab. (komplette Pfade)
Dann machst du bei der neuen Addresse für jeden der Pfade .mkdir()

Dann guckst du bei den alten Addressen der Pfade jeweils nach, wieviele und welche nicht-Ordner Pfade enthalten sind (-> Dateien), die du dann jeweils, am Besten mit einer Datei-kopieren Methode (von,zu) an den neuen Ort kopierst.
Dazu nimmst du am Besten den Pfad von dem Ordner aus (aus dem du kopierst) zu der Datei, und kopierst zum Pfad: Ordner (zu dem du kopieren willst) + restlicherPfad

Hoffe ich konnte helfen

Gruß eMmiE
 

turtle

Top Contributor
File würde ich an deiner Stelle nicht mehr verwenden.

Denn in Java 7 dafür gibt es nun das neue Interface Path und die Klasse Files.

In Files gibt es die Methode walkFileTree mit der du einen Path traversieren kannst.

Dabei kannst du eine SimpleFileVisitorangeben, den du schreiben musst.

Darin gibt es die Methode visitFile, in der du eine Datei kopieren kannst und in preVisitDirectory kannst du ein Directory erzeugen.
 

Timpa1971

Mitglied
Hallo,

@turtle: Ich verwende leider immoment nur java 6. Auserdem kann ich mich nicht mit Java 7 aus, werde das aber demnächst anschauen.
@eMmie:
Wie kopiere ich? das ist ja eben mein problem... Sorry ichbin recht neu und habe bisher nur Bukkit programmiert... Mit 'richtigen' Java programmier ich erst jetzt..
Mein bisheriger Code:
Java:
	private static ArrayList<String> files = new ArrayList<String>();
	public static void Kopieren(File src, File dest) {
		if(src != dest) {
			if(src.exists()) {
				try {
					dest.delete();
				} catch(Throwable throwable1) {
					throw throwable1;
				}
				String[] files1 = src.list();
				for(String file : files1) {
					if(file != null) {
						if(files.size() > files1.length) {
							if(!files.contains(file)) {
								files.add(file);
							}
						} else if(files.size() == files1.length) {
							File f = (File) files.clone();
							f.mkdir();
							//Dateien erstellen
						}
					}
				}
			}
		}
	}
MfG, Timpa
 
Zuletzt bearbeitet:

eMmiE

Bekanntes Mitglied
Kopieren...

Ich würd jetzt rein spontan sagen, dass du die gesamte Datei ungefähr so einliest
Code:
//liest ein
File file = src;
char[] buffer = new char[(int)(file.length())];
try {
  FileReader fr = new FileReader(file);
  fr.read(buffer);
  fr.close();
  FileWriter fw = new FileWriter(dest);
  fw.write(buffer);
  fw.close();
} catch (IOException io) {}

Muss dazu sagen, dass ich das noch nie so direkt hintereinander gemacht habe...
Man sollt evtl fortgeschrittenere Klassen nehmen (BufferedReader,...) aber das ist soweiso nur ne idee


Gruß eMmiE
 

Timpa1971

Mitglied
Ich krieg das nicht hin.. Ich verstehe auserdem nicht mehr viel.. Mit BufferdReader brüchte ich eine andere src.. auserdem klappt da nichts
 

eMmiE

Bekanntes Mitglied
Du hast nicht zufällig schonmal ne Datei eingelesen und bearbeitet?
-> googlen hilft
mach dich am Besten selbst schlau, mein Ansatz ist der Einfachste, der mir jetzt grad so eingefallen ist, bei dem einfach eine Datei in einen Buffer eingelesen wird und dann dieser Buffer wieder an anderer Ort und Stelle geschrieben wird.

Wo liegen denn deine Probleme?

Gruß eMmiE
 

Lonsdaleit

Aktives Mitglied
Es gibt für File die Methode "renameTo()".

Diese Methode kann auch dafür benutzt werden um Files zu verschieben.

Ansonsten den Ansatz wählen der schon vorgeschlagen wurde.

Rekursiv alle Verzeichnisse und Dateien des Ordners abarbeiten und "verschieben".

Gruß
 

Timpa1971

Mitglied
Ok, entschuldigung ich habe meinen Fehler. Das Problem ist das ich nicht wies wie ich den Pfad angebe. Ich glaube das ../ stimmt nicht.
Ich brauche diesen Pfad:
Desktop
-Test
--Ordner1
---Die Datei
--Ordner2
---src
--dest

src und dest exestieren. Meine src: "../Ordner2/src" und dest: "../dest"
 
Zuletzt bearbeitet:

turtle

Top Contributor
Ich verwende leider immoment nur java 6. Auserdem kann ich mich nicht mit Java 7 aus, werde das aber demnächst anschauen
Es scheint sich ja etwas getan zu haben in diesem Thread...

Aber ich poste mal meine Java-7 Lösung für Interessierte trotzdem, denn es gibt für Java-6 keine Updates mehr und wird nicht mehr gepflegt und daher ein Grund sich Java-7 anzuschauen, zumal Java-8 steht bereits vor der Tür. Java-7 wird wohl März 2015 ebenfalls den Gang alles Irdischen nehmen und das ist auch nicht mehr soo lange hin;)

Java:
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.StandardCopyOption;
import java.nio.file.attribute.BasicFileAttributes;

public class CopyDirVisitor extends SimpleFileVisitor<Path> {
	private Path fromPath;
	private Path toPath;
	private StandardCopyOption copyOption = StandardCopyOption.REPLACE_EXISTING;

	CopyDirVisitor(Path fromPath, Path toPath) {
		this.fromPath = fromPath;
		this.toPath = toPath;
	}

	@Override
	public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
		Path targetPath = toPath.resolve(fromPath.relativize(dir));
		if (!Files.exists(targetPath)) {
			Files.createDirectory(targetPath);
		}
		return FileVisitResult.CONTINUE;
	}

	@Override
	public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
		System.out.println(file);
		Files.copy(file, toPath.resolve(fromPath.relativize(file)), copyOption);
		return FileVisitResult.CONTINUE;
	}

	public static void main(String[] args) throws IOException {
		Path startingDir = FileSystems.getDefault().getPath("D:/turtle");
		Path destDir = FileSystems.getDefault().getPath("D:/turtleKopie");

		Files.walkFileTree(startingDir, new CopyDirVisitor(startingDir, destDir));
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
Tobero .jar Dateine aus einem Ordner laden (Java 16) Allgemeine Java-Themen 5
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
M Ordner kopieren Allgemeine Java-Themen 5
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
B Dateien / Bilder von "webapp" Ordner bekommen? Allgemeine Java-Themen 1
F Registry Ordner durchlaufen Allgemeine Java-Themen 1
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
R Setting Ordner fehlt Allgemeine Java-Themen 1
J Ordner und Datei Struktur einer War Datei Allgemeine Java-Themen 1
K getResource guckt im Target-Ordner...? Allgemeine Java-Themen 2
P Zum src Ordner einen Projektes navigieren Allgemeine Java-Themen 8
D Ordner commiten mit SvnKit Allgemeine Java-Themen 0
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
P JDK installieren Kann man die Ordner in C:\Users\*\AppData\LocalLow\Sun\Java\.... löschen? Allgemeine Java-Themen 3
X Dateien von der Jar zum Ordner kopieren. Allgemeine Java-Themen 4
Ananaskirsche Input/Output Dateien im Ordner Allgemeine Java-Themen 8
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
D Ordner auf Desktop erstellen(Pc unabhängig) Allgemeine Java-Themen 5
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
T Datei Ordner in Binär-Zahlenkette umwandeln Allgemeine Java-Themen 11
M JavaMail Spam-Ordner Allgemeine Java-Themen 2
B Dateien verschwinden aus bin Ordner?! Allgemeine Java-Themen 5
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
M Pakete in Ordner Kopieren Allgemeine Java-Themen 7
P Ordner und Unterordner rückwärts durchsuchen Allgemeine Java-Themen 3
B Swing In JAR Ordner durchsuchen Allgemeine Java-Themen 2
B Ordner öffnen mittels Java in Linux-Umgebung Allgemeine Java-Themen 7
H Ordner in Zip integrieren Allgemeine Java-Themen 7
P Input/Output Ordner löschen --> geht nicht Datei --> Ja Allgemeine Java-Themen 6
I Java Ordner kopieren [Error] Allgemeine Java-Themen 6
S Dateien aus src-Ordner lesen Allgemeine Java-Themen 3
E nach dem Ordner suchen, wo .jar datei sich befindet Allgemeine Java-Themen 17
Developer_X Java FTP - Ordner auf Server erstellen Allgemeine Java-Themen 7
S Zugriffschutz auf Ordner Allgemeine Java-Themen 5
E ordner rekursiv durchsuchen Allgemeine Java-Themen 6
E Ordner rekursiv kopieren Allgemeine Java-Themen 8
J Ordner im Archiv (jar) auslesen Allgemeine Java-Themen 12
P Datei aus Ordner wird nicht gelesen Allgemeine Java-Themen 2
4 Java Ordner Allgemeine Java-Themen 27
S auf freigebene Ordner zugreifen Allgemeine Java-Themen 6
F Ordner auslesen und in Editor ausgeben Allgemeine Java-Themen 7
L Ordner in ZipDatei erstellen Allgemeine Java-Themen 3
V Der Ordner von Java ist gelöscht und ich kann es nicht neu instalieren! Allgemeine Java-Themen 2
S Ordner wechseln wie bei chdir Allgemeine Java-Themen 6
D Ordner Verpfadung Allgemeine Java-Themen 19
B ProcessBuilder: kann Ordner im home nicht finden Allgemeine Java-Themen 2
N Dateien in Ordner einsortieren Allgemeine Java-Themen 11
G Ordner für Dateien finden Allgemeine Java-Themen 3
G Globalen Programm-Ordner herausfinden Allgemeine Java-Themen 7
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
S Einen Ordner zurück von der JarDatei Allgemeine Java-Themen 6
G Programm ausführen, sobald Ordner geöffnet? Allgemeine Java-Themen 21
MQue Ordner anlegen Allgemeine Java-Themen 7
B ZIP - Problem mit dem ersten Ordner Allgemeine Java-Themen 2
M JFileChooser: Ordner anlegen Allgemeine Java-Themen 3
J Verschieben ganzer Dateien (und Ordner) Allgemeine Java-Themen 3
Q ||| Nur Dateien einlesen ohne Ordner. Allgemeine Java-Themen 6
I Diverse Files aus Ordner auslesen Allgemeine Java-Themen 10
M Ordner nach neuester Datei durchsuchen Allgemeine Java-Themen 4
D Dateien und ordner ausgabe Allgemeine Java-Themen 5
G Subclipse + svn:ignore - Ordner manuel ignorieren? Allgemeine Java-Themen 2
Y Ordner löschen Allgemeine Java-Themen 2
D Auf Laufwerk bzw. Ordner auf einem Server zugreifen Allgemeine Java-Themen 7
T Ordner überwachen Allgemeine Java-Themen 6
TheJavaKid Ordner in Zip laden Allgemeine Java-Themen 21
D Linux Link wird als Ordner interpretiert? Allgemeine Java-Themen 2
A Alle Ordner durchsuchen und Dateien finden Allgemeine Java-Themen 2
F Alle Files im Ordner nach Dateinamen durchsuchen Allgemeine Java-Themen 28
F Dateien in einem Ordner zählen Allgemeine Java-Themen 15
H Klassen aus einem Ordner zur Laufzeit laden. Allgemeine Java-Themen 6
André B. Sucher erfasst nur Ordner Allgemeine Java-Themen 10
M ganzen Ordner mit URL angeben Allgemeine Java-Themen 4
K Ordner/Dateistruktur in Objekten nachbilden Allgemeine Java-Themen 6
N Inhalte aller Txts in einem Ordner Addieren Allgemeine Java-Themen 5
N Alledateien in einem Ordner in ein Vector speichern Allgemeine Java-Themen 19
F Ordner erstellen Allgemeine Java-Themen 3
M Bilder-Ordner kann im JAR-File nicht gefunden werden Allgemeine Java-Themen 15
B dynamisches Laden aller Klassen in einem Ordner ?? Allgemeine Java-Themen 5
T Klassen samt Methoden aus Jar-Archiv laden macht Problem Allgemeine Java-Themen 9
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
G Dateien lesen Allgemeine Java-Themen 3
OnDemand Unterschiedliche jar Dateien zusammen führen Allgemeine Java-Themen 8
A Sicheres Löschen von Dateien Allgemeine Java-Themen 7
O git ignore für Intellji braucht es die .idea Dateien? Allgemeine Java-Themen 8
Master3000 Dateien zwischen verschiedenen Netzwerken senden Allgemeine Java-Themen 17
L Jar Dateien in Classpath laden ab JDK 9+ Allgemeine Java-Themen 11
d.lumpi JDA eclipse dateien versenden Allgemeine Java-Themen 4
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
L Dateien richtig auslesen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben