Hallo,
ich bräuchte Hilfe beim kopieren von einem Verzeichnis in mehrere Verzeichnisse, d.h. ich will von einem Server die Dateien auf einen Temp Ordner und in einen anderen Ordner kopieren. Außerdem möchte ich die Dateien die ich in Temp kopiere, temporär entpacken und eine Spalte von den XML Dateien auslesen.
Würde mich freuen wenn Ihr mir helfen könnt.
Ich bendanke mich im vorraus.
Mfg
so sieht mein Code bisher aus!!!
ich bräuchte Hilfe beim kopieren von einem Verzeichnis in mehrere Verzeichnisse, d.h. ich will von einem Server die Dateien auf einen Temp Ordner und in einen anderen Ordner kopieren. Außerdem möchte ich die Dateien die ich in Temp kopiere, temporär entpacken und eine Spalte von den XML Dateien auslesen.
Würde mich freuen wenn Ihr mir helfen könnt.
Ich bendanke mich im vorraus.
Mfg
Java:
package verschieben;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import org.joda.time.DateTime;
import org.joda.time.Days;
public class Dateien {
// Verzeichnisse angeben
File input = new File("X:\\2012");
File output = new File("C:\\metin8y\\monstar");
public Dateien() {
// Verzeichnis vorhanden???
if (!input.exists()) {
System.out.println("Direcotry does not exists.");
System.exit(0);
} else {
// Dateien kopieren
try {
copyFolder(input, output);
} catch (IOException e) {
e.printStackTrace();
System.exit(0);
}
}
System.out.println("Done");
}
public File getInput() {
return input;
}
public void setInput(File input) {
this.input = input;
}
public File getOutput() {
return output;
}
public void setOutput(File output) {
this.output = output;
}
// komplettes Verzeichnis (alle Ordner kopieren und verschieben) kopieren
@SuppressWarnings("deprecation")
public static void copyFolder(File input, File output) throws IOException {
Datenbank db = new Datenbank();
if (input.isDirectory()) {
if (!output.exists()) {
output.mkdir();
System.out.println("Directory copied from " + input + " to " + " " + output);
}
String files[] = input.list();
for (String file : files) {
File input2 = new File(input, file);
File output2 = new File(output, file);
// rekursiv kopieren
copyFolder(input2, output2);
}
}
else {
InputStream in = new FileInputStream(input);
OutputStream out = new FileOutputStream(output);
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
// Die Archive-Elemente Zippen und mit subString die Namen erhalten
ZipFile zipF = null;
try {
zipF = new ZipFile(input);
Enumeration<? extends ZipEntry> enu = zipF.entries();
while (enu.hasMoreElements()) {
ZipEntry zipE = (ZipEntry) enu.nextElement();
System.out.println("Dateiname " + zipE.getName());
// Datum, Name und Uhrzeit von Einzelnen Dateien
String a = zipE.getName().substring(15, 23);
String b = zipE.getName().substring(24, 30);
String c = input.getName().substring(0, 5);
// Verzeichnis-Datum
String jahr = output.getName().substring(14, 18);
String monat = output.getName().substring(18, 20);
String tag = output.getName().substring(20, 22);
// Differenz von Daten
DateTime start = new DateTime(Integer.parseInt(jahr), Integer.parseInt(monat), Integer.parseInt(tag), 0, 0, 0, 0);
DateTime end = new DateTime();
Days days = Days.daysBetween(start, end);
int difference = days.getDays();
System.out.println("Differenz: " + difference);
// Variable für die Anzahl der Tage, wie Lange die Dateien
// in einem Archiv bleiben sollen.
int x = 30;
//File output3 = new File("C:\\metin8y\\Logs");
// Nach 30 Tagen die Dateien verschieben
if (difference > x) {
output.renameTo(new File("C:\\metin8y\\Logs", output.getName()));
} else {
}
// Überprüfen ob XD- oder DAS-File
String d = "INDIA";
if (c.equals(d)) {
db.insert(input.getPath(), output.getPath(), "XD", zipE.getName(), a, b,"");
} else {
db.insert(input.getPath(), output.getPath(), "DAS", zipE.getName(), a, b,"");
}
System.out.println("File copied from: " + input + " to: " + output);
}
} catch (IOException ex) {
System.out.println("Done");
}
finally {
if (zipF != null) {
zipF.close();
}
}
}
}
public static void main(String[] args) throws IOException {
Dateien d = new Dateien();
Datenbank db = new Datenbank();
System.out.println(d + "" + db);
}
}
so sieht mein Code bisher aus!!!