그동안 압축시대 프로그램에서는 파일 압축을 7zip 모듈에 의존해 왔었다. 요즘 7zip 의존성을 제거하기 위한 작업을 하고 있는데 그 일환으로 zip 파일 압축 기능을 개발하기 위해서 먼저 zip 포맷을 비주얼하게 정리해 봤다. (첨부 파일은 그 1차 결과물) 아마도 zip 파일을 직접 핸들링 하고자 하는 사람에게는 도움이 될듯. 


zip 포맷 자체는 그다지 어려운 포맷은 아니긴 하지만... 그동안 확장이 너무 많이 정의되어 버려서 꽤나 복잡한 포맷이 되어 버렸다. 그중 고려할것은 utf8 을 이용한 유니코드 인코딩, 분할 압축, 4g 이상의 압축 데이타 지원등이다.


여기에 lzma, aes 등을 지원하려면 꽤나 골치아픈 작업이다.

===============

* 2010/10/19  추가
- 분할 압축 관련 보완 및 잘못된 부분 수정


- 일단 7zip 은 zip, z01, z02 파일을 풀지 못함.
- winzip, alzip 은 central directory 가 볼륨 중간에서 시작해서 내용이 분할되면 파일을 열지 못함.
- winrar 은 central directory 가 볼륨 맨 앞에 있으면 열지 못함.

결론 : 모든 압축 프로그램에서 압축 해제 가능한 분할 zip 파일은 만들 수 없음. 


=================

* 2010/10/25 추가
- 암호 관련 사항, 분할 압축 관련 사항, 잘못된 부분 수정, 이쁘게 수정 등등..
- 이정도면 거의 zip 파일에 관련된 사항은 정리가 끝난듯. (물론 정리하면서 코딩도 병행했기 때문에 zip 파일 압축 모듈도  거의 완성됨 - 남은건 유닛테스트 만들기 )

* 2010/12/30 
http://www.indidev.net/forum/viewtopic.php?p=9  파일 다운로드는 여기로 와주세요.



Posted by 키플러
,