Datein kopieren: File oder xcopy? Was ist schneller?

Acid

Mitglied
Moin, ich hab ein Programm mit dem ich Datein von einen Ort in einen anderen Ort kopieren kann. Die Dateien können relativ groß sein, 1GB ist dabei keine seltenheit denke ich.
Ich hab nun eine Methode die Mithilfe der Klasse java.io.File dies auch umsetzen kann. Das dauert nun recht lange.
Meine Frage: Ist es besser von Geschwindigkeit, wenn ich mit xcopy arbeite und die Datein quasi über die cmd kopiere?
 

AmunRa

Gesperrter Benutzer
probiers doch einfach mal aus und miss deine Zeit

Wie liest und kopierst du eigentlich deine Datei in deinem Code vl kann ma da noch was beschleunigen
 

Acid

Mitglied
Ja moment, ich hab gerade noch ein anderes Problem. Un zwar muss ich zusätzlich noch einen Ordner erstellen. Das wollt ich mit diesen Befehl machen:

Java:
process = Runtime.getRuntime().exec("mkdir C:\\Users\\Thomas\\Desktop\\Test");

Also es soll ein Ordner mit den Namen "Test" erstellt werden
Ich bekomm aber ein Fehler:
Code:
SCHWERWIEGEND: null
java.io.IOException: Cannot run program "mkdir": CreateProcess error=2, Das System kann die angegebene Datei nicht finden

Woran kann es liegen das der Befehl nicht ausgeführt werden kann?
 

nrg

Top Contributor
warum willst du sowas mit batch machen, wenn du die die komplette java api zur verfügung hast ???:L
das wäre ungefähr so wie wenn du einen porsche besitzt und ihn aber schiebst, statt zu fahren :)
 

r.w.

Bekanntes Mitglied
Hallo Acid,

Ja moment, ich hab gerade noch ein anderes Problem. Un zwar muss ich zusätzlich noch einen Ordner erstellen. Das wollt ich mit diesen Befehl machen:

Java:
process = Runtime.getRuntime().exec("mkdir C:\\Users\\Thomas\\Desktop\\Test");

Also es soll ein Ordner mit den Namen "Test" erstellt werden
Ich bekomm aber ein Fehler:
Code:
SCHWERWIEGEND: null
java.io.IOException: Cannot run program "mkdir": CreateProcess error=2, Das System kann die angegebene Datei nicht finden

Woran kann es liegen das der Befehl nicht ausgeführt werden kann?

und wenn doch per Shell...


mkdir ist kein Programm, sondern ein Shell-internes Kommando.

Also müsste es in etwa so wie folgt aussehen:

Java:
process = Runtime.getRuntime().exec("cmd /c mkdir C:\\Users\\Thomas\\Desktop\\Test");

Wobei ich es, schon aus Gründen der BS-Unabhängigkeit, auch nicht per Shell machen würde.

VG ROlf
 

Acid

Mitglied
Ich wills ja nicht unbedingt mit ner batch machen, mir würde es besser passen des mit der File Klasse zu machen. Mein Frage war ja, ob es vielleicht schneller über die batch geht. Aber so wie es aussieht ist das nicht der fall.
Das ist übrigens die Methode die ich verwende:
Java:
public void copyDir(File quelle, File ziel) throws FileNotFoundException, IOException {
		
	File[] files = quelle.listFiles();
	File newFile = null; // in diesem Objekt wird für jedes File der Zielpfad gespeichert.
			     // 1. Der alte Zielpfad
			     // 2. Das systemspezifische Pfadtrennungszeichen
			     // 3. Der Name des aktuellen Ordners/der aktuellen Datei
	ziel.mkdirs();	     // erstellt alle benötigten Ordner
	if (files != null) {
		for (int i = 0; i < files.length; i++) {
				newFile = new File(ziel.getAbsolutePath() + System.getProperty("file.separator") + files[i].getName());
			if (files[i].isDirectory()) {
				copyDir(files[i], newFile);
			}
			else {
				copyFile(files[i], newFile);
			}
		}
	}
}

Den code hab ich hier im Forum gefunden:
http://www.java-forum.org/allgemeines/33129-verzeichnisse-durchsuchen-bearbeiten-auslesen.html
 

faetzminator

Gesperrter Benutzer
Such noch nach einer NIO statt IO Lösung für [c]copyFile[/c], dann sollte es genug schnell sein ;) Beispielmethode in meinem Link:
Java:
public static void copyFile(File sourceFile, File destFile) throws IOException {
 if(!destFile.exists()) {
  destFile.createNewFile();
 }
 
 FileChannel source = null;
 FileChannel destination = null;
 try {
  source = new FileInputStream(sourceFile).getChannel();
  destination = new FileOutputStream(destFile).getChannel();
  destination.transferFrom(source, 0, source.size());
 }
 finally {
  if(source != null) {
   source.close();
  }
  if(destination != null) {
   destination.close();
  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Mehrere Datein kopieren Java Basics - Anfänger-Themen 10
S datein kopieren Java Basics - Anfänger-Themen 5
H Datein und Ordner kopieren bzw neu anlegen Java Basics - Anfänger-Themen 2
Buroto Klassen Mehrere .txt Datein verbienden und anschließend auslisten Java Basics - Anfänger-Themen 10
L Datein einlesen Java Basics - Anfänger-Themen 1
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Java FTP Download lädt datein nicht Ordentlich herunter Java Basics - Anfänger-Themen 9
T csv Datein einlesen und ausgewähltes Feld ausgeben Java Basics - Anfänger-Themen 4
M Class Datein aus einen Unterordner verwenden Java Basics - Anfänger-Themen 2
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
Ananaskirsche Input/Output Platzhalter durch String in yml-Datein ersetzen Java Basics - Anfänger-Themen 5
O Auslesen von .csv Datein in ein Klassen Array Java Basics - Anfänger-Themen 6
L Bild-Datein "zuschneiden" Java Basics - Anfänger-Themen 11
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
H Java Datein starten nicht :( Java Basics - Anfänger-Themen 5
D Selbstprogrammierte Datein in Netbeans nutzen? Java Basics - Anfänger-Themen 2
J .jar Datein ausführen Java Basics - Anfänger-Themen 23
A 3 java-Datein in 1 .jar Java Basics - Anfänger-Themen 2
B txt Datein zeilenweise einlesen Java Basics - Anfänger-Themen 4
S Speichern von Datein in Java Java Basics - Anfänger-Themen 3
A Eigene Klassen Datein? Java Basics - Anfänger-Themen 8
K Datein auf der Console anzeigen lassen ? Java Basics - Anfänger-Themen 4
K Mit php datein komunizieren Java Basics - Anfänger-Themen 4
B Datein Speichern Java Basics - Anfänger-Themen 3
P Zeilenumbrüche in txt Datein Java Basics - Anfänger-Themen 2
B Dateigröße ermitteln von Datein im Internet Java Basics - Anfänger-Themen 9
C Zugriff auf Datein in meinem jar File Java Basics - Anfänger-Themen 23
K Datein ausführen (exec) Java Basics - Anfänger-Themen 3
M In Datein schreiben Java Basics - Anfänger-Themen 4
P Einlesen von großes Datein optimieren durch Thread(s) Java Basics - Anfänger-Themen 7
N Mehrzeilig aus Datein lesen und schreiben Java Basics - Anfänger-Themen 8
A .class Datein, jar Archiv ? Java Basics - Anfänger-Themen 2
S Vectoren in Datein speichern --> Fehlermeldung Java Basics - Anfänger-Themen 6
G variable kopieren bzw. woanders benutzen Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
S Eine Liste kopieren Java Basics - Anfänger-Themen 13
M ArrayList - Objekt kopieren und ändern Java Basics - Anfänger-Themen 11
A BinaryTree komplett kopieren Java Basics - Anfänger-Themen 7
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
J Zweidimensionales array kopieren und in eindimensionales überführen Java Basics - Anfänger-Themen 304
F Input/Output Files von A nach B kopieren Java Basics - Anfänger-Themen 11
S Image Datei selektieren und in Projekt Verzeichnis abspeichern/kopieren Java Basics - Anfänger-Themen 16
S Input/Output Vom Netzwerk kopieren Java Basics - Anfänger-Themen 6
M Mehre Dateien parallel kopieren mit Multithreading Java Basics - Anfänger-Themen 8
C Objekt (tief)-kopieren Java Basics - Anfänger-Themen 2
M Input/Output Word File Kopieren Java Basics - Anfänger-Themen 12
TomatenBrot447 Wie kann man ein Objekt kopieren? Java Basics - Anfänger-Themen 11
W Datentypen Kopieren von Arrays Java Basics - Anfänger-Themen 4
M Input/Output Datei in Laufzeit-JAR kopieren Java Basics - Anfänger-Themen 6
D Input/Output Ordner aus .Jar in das Verzeichnis der .Jar kopieren Java Basics - Anfänger-Themen 1
B Dateien aus dem "resource" - Folder kopieren in Verzeichnis Java Basics - Anfänger-Themen 9
B Kopieren von Dateien mit Adminberechtigungen Java Basics - Anfänger-Themen 14
D 2 D Arrays kopieren Java Basics - Anfänger-Themen 3
S double[x] , double[y] zu Point[] points kopieren? Java Basics - Anfänger-Themen 15
C Array kopieren und nur bestimmte Werte speichern Java Basics - Anfänger-Themen 6
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
C Datei identisch Kopieren Java Basics - Anfänger-Themen 3
E Textdatei kopieren funktioniert nicht Java Basics - Anfänger-Themen 12
L Source Code in Editor kopieren Java Basics - Anfänger-Themen 5
S ods-Dateo kopieren Java Basics - Anfänger-Themen 12
M Threads nio Dateien kopieren, Threads und Gui Java Basics - Anfänger-Themen 0
S Binärbaum kopieren Java Basics - Anfänger-Themen 6
J Klassen Fehler Datei kopieren - was mache ich falsch Java Basics - Anfänger-Themen 19
M Kopieren einer .wav Datei Java Basics - Anfänger-Themen 6
J Dienst zum Text kopieren und Variable hochzählen Java Basics - Anfänger-Themen 7
V Zwei Array in einem kopieren Java Basics - Anfänger-Themen 3
T TreeSet sortiert in ein anderes kopieren Java Basics - Anfänger-Themen 2
B Methode zum kopieren von Arrays Java Basics - Anfänger-Themen 9
C Referenz auf ein Objekt kopieren! Java Basics - Anfänger-Themen 2
J Text kopieren an bestimmter Stelle Java Basics - Anfänger-Themen 8
T ArrayList kopieren Java Basics - Anfänger-Themen 10
M Java-Datei in Ordner Kopieren Java Basics - Anfänger-Themen 12
S Dateien in RAM kopieren und ausführen? Java Basics - Anfänger-Themen 4
B Dateien kopieren, entpacken, XML auslesen! Java Basics - Anfänger-Themen 7
M Array Inhalt kopieren Java Basics - Anfänger-Themen 3
H Interface JTextPane html formatiert kopieren Java Basics - Anfänger-Themen 2
Dogge Datei kopieren Java Basics - Anfänger-Themen 13
F Kopieren von Ordner sammt inhalt Java Basics - Anfänger-Themen 5
S Dateien mittels Path(s) kopieren und umbenennen. Java Basics - Anfänger-Themen 4
C Erste Schritte Integer Werte in Array kopieren Java Basics - Anfänger-Themen 21
R Datei kopieren: Performance erhöhen Java Basics - Anfänger-Themen 10
B Erste Schritte Dateien ueber Netzwerk kopieren Java Basics - Anfänger-Themen 2
G Nur benötigte Klassen in executable jar kopieren! Java Basics - Anfänger-Themen 6
S File Kopieren Path Pfad Problem Java Basics - Anfänger-Themen 3
T Methoden Array kopieren: Wie geht das? Java Basics - Anfänger-Themen 20
R Kopieren einer Datei Java Basics - Anfänger-Themen 18
G Kopieren von Array-Daten Java Basics - Anfänger-Themen 6
L Datei kopieren Java Basics - Anfänger-Themen 11
F Text aus Textfeld1 in Textfeld 2 kopieren Java Basics - Anfänger-Themen 5
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
eLogic Ordner kopieren/schreiben Java Basics - Anfänger-Themen 2
G Text aus TextArea in Zwischenablage kopieren Java Basics - Anfänger-Themen 6
J Jar kopieren und einfügen Java Basics - Anfänger-Themen 4
X Zeile in Tabelle kopieren und in andere einfügen Java Basics - Anfänger-Themen 6
N Kopieren einer ArrayListe Java Basics - Anfänger-Themen 3
D In Zwischenablage kopieren Java Basics - Anfänger-Themen 8
C Datei kopieren - Erweiterung java.io.File Java Basics - Anfänger-Themen 2
N Vectorinhalt kopieren Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben