ZIP File Format Specification
안녕하세요 Geeks_Company입니다.
여기서 설명 드릴 자료는 Zip이라는 파일 압축 확장자에 관한 세부 사항 입니다.
원문 참조 링크는 http://www.pkware.com/documents/casestudies/APPNOTE.TXT 이며 저작권을 침해 할 경우 메일 또는 댓글로 알려 주셨음 합니다.
이글의 목적은 Zip의 파일 포멧으로 저장된 파일중 deflate 으로 압축을 풀 수 있는 자료에 관해서만 설명하기 위해서 필요 한 부분을 따로 적어 놓습니다.
V. General Format of a .ZIP file : Zip파일에 대한 일반적인 포멧
--------------------------------
... (생략)
[local file header 1] : 헤더 1
[file data 1] : 압축된 데이터 1
[data descriptor 1] : 데이터의 설명 1
... (생략)
A. Local file header:
local file header signature 4 bytes (0x04034b50) : Zip 해더 시그니처
version needed to extract 2 bytes : 압축 풀기 위해서 필요한 버전
general purpose bit flag 2 bytes : 일반적 목적의 bit flag
compression method 2 bytes : 압축시 사용된 방식
last mod file time 2 bytes : 마지막으로 변경된 파일 시간
last mod file date 2 bytes : 마지막으로 변경된 파일 날자
crc-32 4 bytes : crc-32 체크를 위한 값
compressed size 4 bytes : 압축된 data의 용량
uncompressed size 4 bytes : 압축이 풀릴시 용량
file name length 2 bytes : 압축된 파일의 이름 길이
extra field length 2 bytes : 여유분 길이
file name (variable size) : 파일 이름
extra field (variable size) : 여유분 필드
참고로 저는 압축을 할경우 .zip 파일 자체가 압축된 데이터 인지 알았는데, 알고 보니 파일 확장 자 이며,
그 안에 압축된 데이터를 포함하는 것이었군요.
B. File data : 파일 데이터
Immediately following the local header for a file
is the compressed or stored data for the file.
The series of [local file header][file data][data
descriptor] repeats for each file in the .ZIP archive.
로컬 헤더 바로 뒤에 따라 나오는 정보가 압축 또는 단순 저장된 데이터 이며,
[local file header][file data][data descriptor] 형태의 저장이 반복적으로 .ZIP 안에서 사용 됩니다.
Zip 파일을 풀고 싶을 경우,
즉, 로컬 파일 헤더 마지막 부분 + 압축된 데이터 사이즈 만큼 읽어 들인후 , 압축 방식에 사용된 method를 찾아서 적용 시키면 압축을 풀 수 있습니다.
'관련자료' 카테고리의 다른 글
Zip에 사용된 Deflate Compressed Data Format 의 세부 사항 (2) | 2010.07.14 |
---|---|
압축 풀때 사용되는 Deflate 알고리즘. (0) | 2010.06.06 |
LZ77 (0) | 2010.05.13 |
Move-to-Front transform (0) | 2010.05.06 |
Burrows–Wheeler transform (0) | 2010.05.06 |