Tôi đang cố tìm vị trí của tiêu đề tệp Thư mục Trung tâm đầu tiên trong tệp Zip.Cách tìm vị trí của Thư mục Trung tâm trong một tệp Zip?
tôi đang đọc những: http://en.wikipedia.org/wiki/Zip_(file_format) http://www.pkware.com/documents/casestudies/APPNOTE.TXT
Như tôi đã nhìn thấy nó, tôi chỉ có thể quét qua các dữ liệu Zip, xác định bởi các tiêu đề những loại phần tôi đang ở, và sau đó làm điều đó cho đến khi Tôi nhấn tiêu đề Thư mục Trung tâm. Tôi rõ ràng sẽ đọc các Header tập tin trước đó và sử dụng "kích thước nén" để bỏ qua các dữ liệu thực tế, và không cho vòng lặp ... Read More đã biết tất cả các tập tin và thư mục bên trong tệp Zip trong trường hợp này tôi không thấy sử dụng nhiều cho Thư mục Trung tâm nữa.
Để hiểu biết của tôi, mục đích của Thư mục trung tâm là liệt kê siêu dữ liệu tệp và vị trí của dữ liệu thực trong tệp Zip để bạn không cần phải quét toàn bộ tệp?
Sau khi đọc về End Of kỷ lục Trung Directory, Wikipedia nói:
đặt hàng này cho phép một tập tin zip được tạo ra trong một vượt qua, nhưng nó là thường giải nén bằng cách đầu tiên đọc thư Trung ương tại kết thúc.
Tôi làm cách nào để tìm bản ghi Kết thúc thư mục trung tâm một cách dễ dàng? Chúng ta cần phải nhớ rằng nó có thể có một bình luận có kích thước tùy ý ở đó, vì vậy tôi có thể không biết có bao nhiêu byte từ cuối luồng dữ liệu mà nó nằm ở đó. Tôi chỉ quét nó?
P.S. Tôi đang viết một trình đọc tệp Zip.
Bạn không thể bắt đầu quét ngược từ đầu (thư mục ZIP nằm ở cuối tệp)? –
Vâng tôi có thể, nhưng đây thực sự là cách bạn phải làm điều này?Quét ngược lại để tìm End of Central Directory là một khả năng, nhưng xem xét thực tế là nó có một trường nhận xét có kích thước biến có kích thước 16 bit, bạn có thể có khoảng 65k nhận xét mà bạn cần đọc/quét, và nếu nhận xét chứa số ma thuật mà quá trình quét của bạn sẽ thất bại. – Tower
nhận xét luôn trống rỗng nhất và 64K là gì? –