java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Allgemeine Java-Themen

Allgemeine Java-Themen Allgemeine Themen, die nicht in andere Fachforen und nicht zu den Java Basics passen

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 26.03.2005, 00:06   #1 (permalink)
Stammbenutzer
Kilobyte
 
Benutzerbild von Luma
 
Registriert seit: 13.03.2004
Fachbeiträge: 216
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Zip-Archiv auslesen und Entry-Informationen auslesen

Hio. Ich entwickel gerade ein kleines Archivierprogramm. Es geht auch alles bestens nur kann ich nicht „richtig“ auf die ZipEntrys im Zip-Archiv zugreifen. D.h. ich kann schon den Namen auslesen, aber das war's dann auch schon. Muss man den das Archiv immer komplett entpacken, um auf die Dateien zuzugreifen. Ich brauche so Informationen wie z.B. das Icon der Datei oder die echte, sowie die komprimierte Größe (wenn ich zipEntry.getSize() mache kommt nämlich nur -1 zurück)...

Dann hab ich noch eine zweites Problem mit Zip-Archiven: Angenommen es liegt bereits ein Zip-Archiv auf der Festplatte. Jetzt möchte der Benutzer dieses Archiv erweitern. Den Code den ich dazu verwende funktioniert auch bestens, aber nur so lange bis ich am Level des ZipOutputStreams rumspiele... Es gibt dann nämlich immer eine ZipException die mir z.B. Sagt:
Code:
invalid entry compressed size (expected 2364329 but got 1051243 bytes)

Hier mein Code:

Code:
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFile));
out.setComment(this.comment);
//out.setLevel(10); //das ergibt die Exception

ArrayList<String> archiveTable = new ArrayList<String>();
			
if(inputFile.exists())
{	
	ZipFile zipFile = new ZipFile(inputFile);
	Enumeration enu = zipFile.entries();
	while(enu.hasMoreElements())
	{						
		ZipEntry ent = (ZipEntry) enu.nextElement();
		archiveTable.add(ent.getName());
		InputStream in = zipFile.getInputStream(ent);
		out.putNextEntry(ent);
		this.setCurrent("Archiviere: " + ent.getName());
		while((len = in.read(BUFFER)) > 0)
		{
			out.write(BUFFER, 0 , len);	
		}
		in.close();
		out.closeEntry();
	}
	zipFile.close();
					
}

//HashMap enthält die Dateien			
Iterator it = filesHashmap.keySet().iterator();
while (it.hasNext())
{
	String fileKey = it.next().toString();
	String filePath = filesHashmap.get(fileKey).toString();
	File file = new File(filePath);
				
	InputStream in = new FileInputStream(file);
	
	ZipEntry zipEntry = new ZipEntry(fileKey);
	out.putNextEntry(zipEntry);
	len = 0;
	while ((len = in.read(BUFFER)) > 0)
	{
		out.write(BUFFER, 0, len);
	}
	in.close();
	out.closeEntry();
					
	if(this.deletFilesOnExit)
	{
		file.delete();
	}
}
out.close();
					
inputFile.delete();
outputFile.renameTo(new File(this.archiveOutputPath));

cu
luma
Luma ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 26.03.2005, 11:43   #2 (permalink)
Nicht angemeldet
 
Fachbeiträge: n/a
Laut API ist nur 0 bis 9 als compression level zulässig.
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 26.03.2005, 18:07   #3 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Benutzerbild von Luma
 
Registriert seit: 13.03.2004
Fachbeiträge: 216
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Auch wenn ich nen anderen Wert nehme, gibt's den gleichen Fehler...
Luma ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 30.03.2005, 13:54   #4 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Benutzerbild von Luma
 
Registriert seit: 13.03.2004
Fachbeiträge: 216
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Öhhrm kann mir vielleicht jemand sagen, wie man das Kompressionslevel eines Archivs herrausfindet? Ich hab nämlich das Problem gefunden: Das neue Archiv muss genau das gleiche Level haben wie das alten, von dem die Dateien kommen. Nur wie findet man dieses herraus??
Luma ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
auslesen von informationen aus seitenquelltext DownHill Java Basics - Anfänger-Themen 6 10.12.2008 13:19
Informationen der Netzwerkkarte auslesen gladiator09 Netzwerkprogrammierung 1 19.03.2008 20:37
informationen aus tabelle auslesen fritzy Allgemeines EE 1 22.09.2006 08:04
Auslesen von Informationen aus Textdateien cowabunga1984 Java Basics - Anfänger-Themen 2 16.05.2006 12:13
datei informationen auslesen murphy Allgemeine Java-Themen 16 06.01.2006 15:44


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de