자바에서 ZIP 파일을 다루어야할 일이 생겼다. 검색을 해보니 몇가지 방법이 나오는데 자바에서 기본으로 제공하는 클래스를 이용하면 파일명에 한글이 있을 경우 깨지는 문제가 있다고 한다. 해보니 진짜다 ㅡㅡ;; 그래서 한글을 처리할 수 있는 방법을 찾아보니 jazzlib 라는걸 이용하면 된다고 하는데 라이센스가 GPL. 대부분의 자료는 다 요거로 나오는데 왠지 나중에 라이센스 문제가 생길 것 같단 말이지;;;;
열심히 검색을 더해보니 아파치에서 commons-compress 라는걸 배포하고 있다. 이건 라이센스 문제가 없을 듯. 그래서 요걸 쓰기로 결정.
이중에서 commons-compress를 이용하는 방법의 내용 이다. 출처는
http://javafreak.tistory.com/226 이다. 아래의 코드와 샘플 모두 해당 블로그에서 퍼왔다.
라이브러리는
http://commons.apache.org/compress 에서 받을 수 있다.
□ simple과 하위 디렉토리, 파일을 전부 압축해서 E:/test 밑에 simple.zip 파일 생성
CompressionUtil cu = new CompressionUtil();
cu.zip( new File("E:/test/simple") );
□ 압축 해제. E:/test 에 풀림
cu.unzip( new File("E:/test/tool.zip") );
□ 압축 해제 (별도의 디렉토리)
cu.unzip( new File("E:/test/tool.zip") , new File("E:/jade") );
그외에 추가 기능은 소스코드를 보면 된다.