Wyłuskanie plików z paczki *.zip z pamięci podręcznej

0

Muszę wyłuskać poszczególne pliki zarchiwizowane i spakowane zipem. Jest do tego dobry lib "minizip" problem w tym że ta biblioteka operuje na plikach znajdujących się na dysku, ja potrzebuje "wyłuskać" pliki z bufora (w zipie może być ich kilka). Debuguje źródła minizipa i próbuje dojść co i jak zmienić żeby czytał z pamięci podręcznej a nie z dysku ale przyznam się że słabo mi to idzie :/

Ktoś zna jakiś inny sposób? Jak już poszczególne pliki wyłuskam z archiwum to potem nie będzie problemu je zdekompresować zlibem.

0

Nie bardzo rozumiem. Co to znaczy "z bufora"? Mówisz o pamięci podręcznej przeglądarki? Przecież ona znajduje sie na dysku...

0

Nie nie, chodzi o to że wcześniej napisałem url downloadera, ściągam paczkę *.zip z jakiegoś tam adresu i trzymam to w pamięci. Teraz muszę tego zipa (siedzącego w pamięci podręcznej a nie na dysku) "zdearchiwiziwać" (zip archiwizuje skompresowane pliki) żeby potem je zdekompresować i zapisać na dysku. Tak jak z dekompresją nie będzie problemu (biblioteka zlib) tak na "dearchiwizację" bądź jakiekolwiek dobranie się do plików wewnątrz paczki nie mam pomysłu.

Jest biblioteka minizip, tyle że ona operuje na zipie zapisanym na dysku, a jest taka sytuacja, że nie mogę zapisać paczki na HDD i potem ją rozpakowywać, muszę ja rozpakować gdy siedzi jeszcze w pamięci programu.

0

Ok, a ktoś może wie gdzie znajdę jakieś informacje jak poruszać się po archiwum zip ręcznie? Są jakieś sekwencje bitowe oddzielające jeden plik od drugiego?

0

Skoro chcesz wymyślać koło na nowo... http://www.wotsit.org/list.asp?search=zip&button=GO!

0

Nie chce, ale prędzej napiszę coś swojego niż przekopię się przez liba napisanego przez entuzjastę wskaźników.
Lib sprawuje się doskonale, ale analizować to to jakaś masakra. Poza tym ja nie zamierzam implementować algo kompresji, od tego mam zliba, chcę tylko przeskakiwać po archiwum w poszukiwaniu odpowiednich danych i omijać nagłówki, flagi itp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1