Datei aus zip öffnen ohne zip zu entpacken

speirs

Neues Mitglied
Hallo Leute,

ich habe ein Problem mit einem zip Zugriff.

Für eine Simulation einer Datenübertragung (Details erspare ich euch), muss ich auf gewisse Dateien zugreifen bzw. öffnen können. Ich öffne z.B. HTML Seiten mit dem folgenden Code:

Java:
Desktop.getDesktop().open(new File("Mein Pfad"));

Das Funktioniert alles wunderbar. Es wird der Standard HTML Browser geöffnet und reicht erst mal vollkommen aus.

Nur stehe ich jetzt vor dem Problem, dass auch HTML Seiten mit verlinkten Bildern berücksichtigt werden sollen. Deshalb packe ich zusammenhängende Dateien (HTML Seite + .jpg) in ein .zip Archiv. Der Kompressionsgrad ist 0%, ich nutze das .zip einfach als einen Container.
Nun möchte ich einfach die HTML Seite im .zip öffnen OHNE das .zip vorher zu entpacken.

Ich komme mit ZipEntry nicht wirklich weiter. Zwar kann ich mir den Inhalt des .zip anzeigen lassen, die Dateigröße und auch den Kompressionsgrad, aber ich möchte einfach nur die gewünschte HTML öffnen.

Meine Versuche

Java:
Desktop.getDesktop().open(new File("Mein Pfad"));
mit
Java:
zipEntry.getName();

zu kombinieren sing kläglich gescheitert.

Scheinbar gibt es ne Möglichkeit mit BufferedOutputStream zu arbeiten, aber das habe ich leider nicht verstanden. Gibt es keine Möglichkeit einfach die Datei zu öffnen???

Besten Dank für eure Zeit und bitte seht es mit nach, falls ich mir die Geschichte mit "einfach öffnen" zu einfach vorstelle.......
 
Wenn du dir das so vorstellst wie in diversen Zip tools, wo du ein Archiv aufmachst und dann per doppelklick irgendwelche dateien aufrufst muss ich dich enttäuschen: das Programm packt die sachen erst aus und dann ruft es die ausgepackte Datei auf. Besonders wenn du diese Dateien dann noch von Drittprogrammen aufmachen lassen willst wirst du keine andere Möglichkeit haben.
 
Hi,

vielen Dank für deine Antwort. Du hast es auf den Punkt gebracht. Genauso habe ich mir das vorgestellt. 🙂 Ich konnte mir schon denken, dass ich es mir zu einfach mache. Ich arbeite nun mit BufferedOutputStream, d.h. ich mache erste Versuche......

have a nice sunday......


thx
 
Du kannst HTML aus Jar-Dateien direkt über die passende URL abfragen und in Deinem Programm anzeigen lassen (z. B. in einer JEditorPane). Die URL erhälst Du über über irgend etwas wie z. B.
Java:
"jar:file:zipDatei.zip!/anzeigetext.html"

Daneben kannst Du mit TruZip die Inhalte eines ZIP-Archivs wie ein normales File-System lesen, ab Java 7 geht das alles auch mit bordeigenen Mitteln. Wenn Du über Desktop die Datei in einem externen Programm anzeigen lässt, dann wird Dir nichts anderes übrig bleiben, als die Datei erst zu entpacken und dann aufzurufen, wobei Du besser die Methode browse nimmst. Du weißt ja nicht, mit welchem Programm die Dateiendung .html bei User registriert ist.
 

Zurück
Oben