Ich hab ein Problem mit dem Auslesen von Zipfiles.
Mein Programm erstellt ein Zipfile mit beliebig vielen Dateien und prüft anschließend, ob die Dateien noch dieselbe Zeilenzahl haben. Allerdings gibt's jetzt noch ein Problem mit dem Auslesen der Zipdatei.
Das Programm soll die Zipdatei auslesen und die Dateinamen in einen Vector schreiben, aber es wird immer null eingetragen. Es liegt wohl am in.getNextentry() . Wie kann ich das richtig machen?
mfg
Mein Programm erstellt ein Zipfile mit beliebig vielen Dateien und prüft anschließend, ob die Dateien noch dieselbe Zeilenzahl haben. Allerdings gibt's jetzt noch ein Problem mit dem Auslesen der Zipdatei.
Code:
//Dateien zippen
public void zip() throws IOException
{
...
// zipdatei ist der Name der erstellten ZipDatei (wer hät's gedacht :wink: )
// lines ist ein Array, in dem die Zeilenzahl der Dateien vor dem Zipvorgang gespeichert ist
scanZipfile(zipDatei,lines);
}//end zip()
public void scanZipfile(String zipDatei, int lines[]) throws IOException
{
Vector zipEntry = new Vector();
String eintrag;
int i=0;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipDatei));
Enumeration e =null;
while((in.getNextEntry())!=null)zipEntry.add(in.getNextEntry()); //hier wird immer null übergeben!??
e= zipEntry.elements();
while(e.hasMoreElements())
{
eintrag =(String) e.nextElement();
if( (countLines(eintrag) !=lines[i++]) ) {System.out.println("Fehlerhafte ZipDatei : "+eintrag);}
else{System.out.println("Datei "+eintrag+" korrekt gezippt!");}
}
}
int countLines(String file) throws IOException
{
String zeile;
int counter = 0;
LineNumberReader nummer = new LineNumberReader(new FileReader(file));
while ((zeile = nummer.readLine())!=null)
counter++;
return counter;
}
Das Programm soll die Zipdatei auslesen und die Dateinamen in einen Vector schreiben, aber es wird immer null eingetragen. Es liegt wohl am in.getNextentry() . Wie kann ich das richtig machen?
mfg