mit einer datei im zip ordner arbeiten
-
hallo,
ich habe eine .zip datei, in der eine txt datei ist. nun will ich sie per ifstream einlesen, damit ich mit ihr arbeiten kann. meine frage: wie kann ich diese erreichen? einfach durch "bla.zip/info.txt"?
danke schonmal
p. s.: ich will diesen zip ordner nicht entpacken
-
das funktioniert so einfch leider nicht, du musst die zip datei öffnen und von hand auslesen, vielleicht gibt es auch eine lib die so etwas direkt anbietet
-
also ich meine, dass man eine zip datei virtuell mit c++ öffnet und somit dann an die txt datei rankommt
-
Wie willst du auf ein Zip-Archiv sinnvoll zugreifen, ohne es zu entpacken?
-
hmmm und wie soll ich an die txt datei sonst ran kommen?
-
hold++ schrieb:
hmmm und wie soll ich an die txt datei sonst ran kommen?
Indem du die gewünschte Datei entpackst, was du mit zlib erledigen kannst.
-
Man kann natürlich auch die Datei aus einem Zip-Archiv direkt mit C++ lesen. Es geht schliesslich alles mit C++. Nur ist es nicht so einfach. Du benötigst auf jeden Fall mal die zlib (zumindest, wenn Du den Algorithmus nicht selbst implementieren willst). Da gibt es auch C-Funktionen, mit dem man zip-Dateien lesen kann.
Ich habe mir mal einen wrapper in C++ geschrieben, welcher ein std::istream dafür implementiert. Er ist auch als open-source in meinem tntnet verfügbar. Da gibt es eine Klasse tnt::unzipFileStream, welches genau das macht.
-
perfekt, danke!