Hi, der Titel beschreibt glaube ich bereits mein Problem, hier aber erst einmal der bisherige Code:
Bei dem Programm kann der User in einer Liste auswählen welche Dateianhänge er in eine Zip speichern will. Die gewählten werden nach dem einpacken gelöscht und ein Eintrag mit dem Namen der ersten gewählten Datei wird für die Zip-Datei verwendet. Die Zip Datei wird vorher erstellt, soweit also keine Probleme. An sich läuft der Code bei nicht-Zip Dateien (vielleicht auch andere Archivdateien, aber die interessieren nicht da die dort sowieso nicht benutzt werden :wink: ) sehr gut, nur bei zip-Dateien scheint er die eventuell in einer Endlosschleife immer wieder auszupacken und den Inhalt immer wieder, bis ins unendliche einzupacken. Wenn ich lange genug warte habe ich statt einem 100kb Archiv ein 500MB Archiv :shock: . Wie gesagt, ich weiss nicht wirklich was ich bei dem Problem machen soll (will ja keine Festplatten füllen, dafür kann man es natürlich benutzen) und würde mich über Hilfe freuen,
mfG RBS2002
PS: Falls der Quelltext mit !=zip als Möglichkeit empfunden wird, der ist eigentlich nur drin damit er zip-Dateien nicht beachtet und gar nicht erst auf die Idee kommt diese einzupacken, aber so soll es ja eben nicht sein....
Code:
it5 = null;
it5 = tempo.iterator();
while (it5.hasNext()) {
int read = 0;
byte[] data = new byte[1024];
String temp2 = it5.next().toString();
ZipEntry entry = new ZipEntry(temp2);
FileInputStream in = new FileInputStream(scannerdir + "/" + temp2);
File temp4 = new File(scannerdir + "/" + temp2);
String temp3 = new String();
temp3 = temp3.concat(temp2.substring(temp2.length() - 4, temp2.length()));
if (temp3.equals(".zip") == false) {
out.putNextEntry(entry);
while ((read = in.read(data, 0, 1024)) != -1) {
out.write(data, 0, read);
}
out.closeEntry();
}
in.close();
temp4.delete();
}
((DefaultListModel) anhangmail.getModel()).addElement(pfad + ".zip");
out.close();
int zaehler = 0;
int z = 0;
int puffi = anhang1z - temp.length;
while (anhang1z != puffi) {
((DefaultListModel) anhangmail.getModel()).remove(temp[z] - zaehler);
z++;
zaehler++;
anhang1z--;
}
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
Bei dem Programm kann der User in einer Liste auswählen welche Dateianhänge er in eine Zip speichern will. Die gewählten werden nach dem einpacken gelöscht und ein Eintrag mit dem Namen der ersten gewählten Datei wird für die Zip-Datei verwendet. Die Zip Datei wird vorher erstellt, soweit also keine Probleme. An sich läuft der Code bei nicht-Zip Dateien (vielleicht auch andere Archivdateien, aber die interessieren nicht da die dort sowieso nicht benutzt werden :wink: ) sehr gut, nur bei zip-Dateien scheint er die eventuell in einer Endlosschleife immer wieder auszupacken und den Inhalt immer wieder, bis ins unendliche einzupacken. Wenn ich lange genug warte habe ich statt einem 100kb Archiv ein 500MB Archiv :shock: . Wie gesagt, ich weiss nicht wirklich was ich bei dem Problem machen soll (will ja keine Festplatten füllen, dafür kann man es natürlich benutzen) und würde mich über Hilfe freuen,
mfG RBS2002
PS: Falls der Quelltext mit !=zip als Möglichkeit empfunden wird, der ist eigentlich nur drin damit er zip-Dateien nicht beachtet und gar nicht erst auf die Idee kommt diese einzupacken, aber so soll es ja eben nicht sein....