Format pliku ZIP
zamek błyskawiczny | |
---|---|
Rozszerzenie pliku : |
.zip
|
Typ MIME : | aplikacja / zip |
Magiczna liczba : |
504B.0304 hex PK \ x03 \ x04 ( Notacja ASCII-C ) |
Opracowany przez: | Phil Katz |
Rodzaj: | Kompresja danych |
Pojemnik na: | wszelkie pliki |
Norma (-y) : | PKWARE / IANA |
Formacie ZIP (z angielskiego na zamek błyskawiczny , zamek błyskawiczny „) to format bezstratnej skompresowane pliki, z jednej strony zmniejsza przestrzeń wymaganą do archiwizacji, a po drugie jako plik kontenera mogą być funkcje, streszczone w kilku powiązanych plików lub całych drzew katalogów. Rozszerzenie pliku dla plików zarchiwizowanych w formacie ZIP to .zip . Typ MIME to application / zip .
fabuła
Format ZIP został pierwotnie opracowany w 1989 roku z programami PKZIP (kompresja) i PKUNZIP (dekompresja) przez Amerykanina Phila Katza i od tego czasu był kilkakrotnie rozszerzany . Katz pierwotnie używał innego formatu pliku ( ARC ). Ten format został opracowany przez Software Enhancements Associates (SEA) i był rozpowszechniany jako shareware . Katz napisał własną, znacznie szybszą wersję tego oprogramowania i rozprowadził je jako PKARC . Kiedy SEA pozwał go, wycofał PKARC i zamiast tego opracował PKZIP, w którym zastosowano bardziej wydajny algorytm . Szybkie rozprzestrzenianie się PKZIP sprawiło, że SEA i ARC straciły sens.
funkcje
Pojemnik
Format ZIP jest początkowo kontenerem danych, w którym można skompresować lub zdekompresować kilka plików, a także można je dekompresować (rozpakowywać) indywidualnie. Format umożliwia również zapisanie powiązanej ścieżki miejsca przechowywania. Możliwe jest również zaszyfrowanie hasłem tylko skompresowanych plików .
Brak progresywnej kompresji
Format ZIP nie obsługuje progresywnej kompresji ( zwanej także angielską stałą ), pliki są kompresowane indywidualnie. Z jednej strony umożliwia to elastyczną obsługę (usuwanie / dodawanie plików z archiwum bez konieczności ponownego kompresowania wszystkiego; rozpakowywanie pojedynczych plików bez konieczności dekompresowania poprzednich plików), ale ma tę wadę, że nie są uwzględniane nadmiarowości między plikami podczas kompresji mogą. Tej wady można uniknąć, najpierw archiwizując zdekompresowane pliki, a następnie zapisując utworzony w ten sposób plik zip w formacie skompresowanym (zwykle przydatne tylko w przypadku dużej liczby podobnych plików).
Format niesekwencyjny
Pliki są dostępne jako wpisy plików ( zapisane angielskie wpisy plików ) w dowolnej kolejności. Wszystkie wpisy pliku zaczynają się od lokalnego nagłówka ( angielski nagłówek lokalny ), który opisuje wpis pliku i inicjuje część danych w efektywnej treści. Aby obsłużyć te losowo rozmieszczone wpisy, aby upewnić się, że plik zip znajduje się na końcu, w każdym przypadku katalog centralny ( angielski katalog centralny ), który odwołuje się do wszystkich wpisów plików z lokalnych nagłówków. Kolejność wpisów w plikach i odpowiadające im odniesienia w katalogu centralnym mogą się różnić od siebie. Jest to struktura niesekwencyjna, którą najlepiej można opisać z koncepcją dostępu losowego ( ang. Random access ).
Z drugiej strony, ten niesekwencyjny format powoduje również, że w przeciwieństwie do formatu tar używanego od 1977 roku i znormalizowanego od 1988 roku , niekompletne archiwa lub archiwa uszkodzone z tyłu nie mogą być w ogóle rozpakowane.
Wielotomowy
Nadal można podzielić archiwum na kilka plików (na przykład podzielić duże pliki na części, z których każdy mieści się na płycie CD lub DVD).
Algorytmy pakowania
Oprócz metody deflate , która jest najbardziej chwytającą metodą aż do wersji PKZip 2.x , ZIP obsługuje szereg innych algorytmów kompresji :
metoda | Krótki tekst | komentarz |
---|---|---|
0 | Sklep | Plik jest zapisywany bez kompresji. |
1 | Niekurczący się | Dynamiczny algorytm Lempel-Ziv-Welch |
2 | Expanding - poziom kompresji 1 | |
3 | Expanding - poziom kompresji 2 | |
4 | Expanding - poziom kompresji 3 | |
5 | Expanding - poziom kompresji 4 | |
6th | Implodowanie | |
7th | Tokenizacja | |
8th | Opróżnianie | LZSS i Huffman - kodowanie entropijne |
9 | Ulepszone opróżnianie ( DEFLATE64 ) | |
10 | PKWARE Data Compression Library Imploding (dawniej IBM TERSE) | |
11 | zarezerwowany | |
12 | Bzip2 | |
13 | zarezerwowany | |
14 | LZMA | Algorytm Lempela-Ziv-Markowa |
15 | zarezerwowany | |
16 | zarezerwowany | |
17 | zarezerwowany | |
18 | IBM TERSE (nowy) | |
19 | Architektura IBM LZ77 z (PFS) | |
95 | Xz (LZMA2) 1.0.4 | Rozszerzenie przez WinZIP 18.0 (listopad 2013) |
96 | Kompresja JPEG | Rozszerzenie przez WinZIP 12.0 (wrzesień 2008) |
97 | WavPack | Rozszerzenie przez WinZIP 11.0 Beta (październik 2006) |
98 | PPMd wersja 1, rew 1 | Rozszerzenie przez WinZIP 10.0 Beta (sierpień 2005) |
99 | Zaszyfrowane AES | Rozszerzenie przez WinZIP |
Rozszerzenia
Istnieją teraz rozszerzenia, które zostały wprowadzone później, takie jak rozszerzenie Zip128.
Rozłóż, czyli
Format pliku i metoda kompresji Deflate są własnością publiczną i dzięki temu zyskały ogólnoświatową dystrybucję i znaczenie.
Metodę deflate można znaleźć jako quasi-standard w wielu innych formatach, takich jak formaty plików obrazów Portable Network Graphics (PNG) i Tagged Image File Format (TIFF), OpenDocument i Office Open XML w formacie ISO .
Programy
Oprócz PKZIP istnieje wiele innych programów, które mogą przetwarzać ten format plików. Należą do nich darmowe programy, takie jak Info-ZIP , PeaZip , Xarchiver lub 7-Zip , których zoptymalizowany algorytm deflate może również generować nieco mniejsze pliki zgodne z PKZIP-2.xx. Istnieją również programy komercyjne, takie jak WinRAR lub WinZip .
Biblioteki programów i klas umożliwiające dostęp do plików zip są dostępne dla wielu języków programowania. Na przykład platforma Java, Standard Edition (Java SE) od 1997 r. (Wersja 1.1) zawiera pakiet „java.util.zip” z odpowiednimi klasami kompresji i dekompresji. Następnie jest biblioteka klas Zip64File, która spakuje pliki jako tak zwane pliki o dostępie swobodnym ( mogą obsługiwać angielskie pliki o dostępie swobodnym ). Zip64File jest publicznie dostępny w całości, bezpłatnie i zawiera kod źródłowy.
Program BOMArchiveHelper zintegrowany z systemem macOS również generuje i dekompresuje w formacie Zip. Eksplorator plików systemu Windows jest również w stanie spakować i rozpakować pliki zip, więc zwykle nie trzeba tutaj instalować dodatkowego oprogramowania.
Imię, pomieszanie nazw
Według firmy PKWare nazwa zip (ang. Zip fastener ) odnosi się do pakowania wielu pojedynczych plików w większy pojemnik, a nie do funkcji kompresji programu.
Nie każdy program do kompresji, którego nazwa zawiera ciąg „ZIP”, obsługuje format plików ZIP. Najważniejsze przykłady to gzip z projektu GNU i bzip2 , z których każdy kompresuje tylko jeden plik w osobnym formacie. W tym przypadku, aby zarchiwizować kilka plików, przed kompresją należy użyć innego programu (zwykle tar w połączeniu z gzip i bzip2 ). Również z 7-Zip , chociaż format pliku ZIP jest w pełni obsługiwany, ale ich własny format archiwum 7z nie jest zgodny z ZIP.
W wersji 12.1 WinZip wprowadził rozszerzenie zipx formatu ZIP, które oznacza użycie nowszych metod kompresji niż DEFLATE, w szczególności BZip, LZMA, PPMd, Jpeg i Wavpack.
Słowo „zip” jest czasami używane jako synonim „archiwizacji skompresowanej”, ale niekoniecznie oznacza to pakowanie jako plik zip.
Kompresja ZIP w innych formatach plików
Następujące formaty plików są plikami zip, ale muszą zawierać określone pliki:
- Java Archive (JAR) - oparty na Zip formatdanych programówJava
- Pakiet Android (APK) - podobny do plików JAR, ale dla Androida
- OpenDocument (ODF) -format pliku używanymiędzy innymi przezApache OpenOfficeto format oparty na kilkuplikachXML, który jestkompresowany do pojedynczych plikówza pomocąZip
- Office Open XML zMicrosoft Officezawiera również skompresowane pliki XML w formacie ZIP
- EPUB - format pliku e-booka
Zobacz też
linki internetowe
- PKWARE: Specyfikacja formatu plików ZIP , 1 października 2014 r. (W języku angielskim)
- Specyfikacja szyfrowania AES w formatach zip
- zlib Szczegóły techniczne (angielski)
- RFC 1950 - ZLIB Compressed Data Format Specification, wersja 3.3 (angielski)
- Rok 2038 problem roku 2038
Indywidualne dowody
- ↑ iana.org IANA
- ↑ Specyfikacja formatu pliku ZIP ( en ) PKWARE Inc. 1 października 2014. Pobrano 18 sierpnia 2017.
- ↑ pkware.cachefly.net
- ↑ winzip.com
- ↑ kb.winzip.com
- ↑ winzip.com
- ↑ imagewz.winzip.com (PDF)
- ↑ winzip.com
- ↑ winzip.com
- ↑ winzip.com
- ↑ winzip.com
- ↑ Kompresowanie (kompresowanie) i rozpakowywanie (rozpakowywanie) plików. W: Obsługa systemu Windows. Microsoft Corporation, dostęp 8 maja 2020 .
- ↑ APK: Co to właściwie jest? - Giga , 28 kwietnia 2014 r
- ↑ Pakiet Android - wpis na wiki Androida ; m.in. z „Używanym językiem programowania jest głównie Java, [...]” w sekcji „Utwórz plik APK” (ostatnia zmiana 5 listopada 2017 r.)