magic_halli
Erfahrenes Mitglied
Hi,
ich erstelle mir in meinem Programm ein Zipfile, in welches ich alle *.dxf und dxf_filenames.xls in einem Verzeichnis reinpacken möchte. Das funktioniert aber bei nur fehlerfrei, wenn solche Dateien vorhanden sind. Ansonsten kommt die Meldung, dass ein Fehler beim erstellen den ZIP aufgetreten ist - es muss mindestes ein File vorhanden sein, welches zum Archiv hinzugefügt werden kann!
So sieht mein Code aus:
Ich bekomme echt ne Macke... Ich wollte einfach nur ne Abfrage hier noch reinbringen, dass wenn mind. eine dieser Dateien, die ins ZIP gepackt werden sollen, vorhanden ist, dann soll das ZIP erstellt werden... ansonsten soll nix passieren.
Ich bekomm das nicht gebacken - warum auch immer (ich seh´s einfach nicht)?! Könnt ihr mir kurz helfen?
Danke und Gruß.
ich erstelle mir in meinem Programm ein Zipfile, in welches ich alle *.dxf und dxf_filenames.xls in einem Verzeichnis reinpacken möchte. Das funktioniert aber bei nur fehlerfrei, wenn solche Dateien vorhanden sind. Ansonsten kommt die Meldung, dass ein Fehler beim erstellen den ZIP aufgetreten ist - es muss mindestes ein File vorhanden sein, welches zum Archiv hinzugefügt werden kann!
So sieht mein Code aus:
Java:
String path = curSession.GetCurrentDirectory();
String find = ".dxf";
String find2 = "dxf_filenames.xls";
String zipname = setFilename_PDF_gesamt(model); //ermittelt Sachnr. der Oberbaugruppe - für zip-Filename
int read = 0;
FileInputStream in;
byte[] data = new byte[1024];
try{
//Zip-Archiv mit Stream verbinden
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(path+zipname+"_Brennteile.zip"));
//Archivierungs-Modus setzen
out.setMethod(ZipOutputStream.DEFLATED);
//dxf-Files in fileArray einlesen
File f = new File(path);
File[] fileArray = f.listFiles();
if(fileArray != null){
for(int i=0;i<fileArray.length;i++){
if(fileArray[i].getName().indexOf(find) != -1 || fileArray[i].getName().indexOf(find2) != -1){
//Eintrag für neue Datei anlegen
ZipEntry entry = new ZipEntry(fileArray[i].getName().toString());
in = new FileInputStream(fileArray[i]);
// Neuer Eintrag dem Archiv hinzufügen
out.putNextEntry(entry);
// Hinzufügen der Daten zum neuen Eintrag
while((read = in.read(data, 0, 1024)) != -1)
out.write(data, 0, read);
//Neuen Eintrag abschließen
out.closeEntry();
in.close();
}
}
out.closeEntry();
}
Ich bekomm das nicht gebacken - warum auch immer (ich seh´s einfach nicht)?! Könnt ihr mir kurz helfen?
Danke und Gruß.
Zuletzt bearbeitet: