Próbuję znaleźć pozycję pierwszego nagłówka pliku Central Directory w pliku Zip.Jak znaleźć pozycję katalogu centralnego w pliku Zip?
Czytam te: http://en.wikipedia.org/wiki/Zip_(file_format) http://www.pkware.com/documents/casestudies/APPNOTE.TXT
Jak ja to widzę, mogę skanować tylko poprzez danych Zip, zidentyfikować przez nagłówku jaką jestem w punkcie, a następnie zrobić aż Uderzyłem w nagłówek katalogu centralnego. Oczywiście wcześniej przeczytałem nagłówki plików i użyłem "skompresowanego rozmiaru", aby pominąć rzeczywiste dane, a nie pętli przez każdy bajt w pliku ...
Jeśli zrobię to w ten sposób, to praktycznie już znasz wszystkie pliki i foldery wewnątrz pliku Zip, w którym to przypadku nie widzę już większego użytku dla katalogu centralnego.
Dla mojego zrozumienia celem Katalogu Centralnego jest lista metadanych pliku i pozycja rzeczywistych danych w pliku Zip, aby nie trzeba było skanować całego pliku?
Po przeczytaniu o koniec zapisu Central Directory, Wikipedia mówi:
Ten Zamawiający dopuszcza plik zip ma zostać utworzony w jednym przejściu, ale jest zwykle rozpakowane przez pierwsze czytanie katalog centralny w koniec.
Jak mogę łatwo znaleźć zapisanie Koniec Centralnego Katalogu? Musimy pamiętać, że może mieć tam komentarz o dowolnym rozmiarze, więc mogę nie wiedzieć, ile bajtów pochodzi z końca strumienia danych, w którym się znajduje. Czy po prostu to skanuję?
P.S. Piszę czytnik plików Zip.
Nie można rozpocząć skanowania od końca (katalog ZIP znajduje się na końcu pliku)? –
Tak, mogę, ale czy naprawdę tak właśnie powinieneś to zrobić?Skanowanie do tyłu w celu znalezienia Koniec Centralnego Katalogu jest możliwe, ale biorąc pod uwagę fakt, że ma on zmienne pole komentarza o rozmiarze 16 bitów, możesz mieć około 65 tysięcy komentarzy, które musisz przeczytać/zeskanować, a jeśli komentarz zawiera magiczną liczbę, której skanowanie zakończy się niepowodzeniem. – Tower
komentarze są najczęściej puste i co to jest 64K? –