[인터돌™] 공부 해보자!! 열심히~~~

반응형
자바에서 ZIP 파일을 다루어야할 일이 생겼다. 검색을 해보니 몇가지 방법이 나오는데 자바에서 기본으로 제공하는 클래스를 이용하면 파일명에 한글이 있을 경우 깨지는 문제가 있다고 한다. 해보니 진짜다 ㅡㅡ;; 그래서 한글을 처리할 수 있는 방법을 찾아보니 jazzlib 라는걸 이용하면 된다고 하는데 라이센스가 GPL. 대부분의 자료는 다 요거로 나오는데 왠지 나중에 라이센스 문제가 생길 것 같단 말이지;;;;

열심히 검색을 더해보니 아파치에서 commons-compress 라는걸 배포하고 있다. 이건 라이센스 문제가 없을 듯. 그래서 요걸 쓰기로 결정.

※ java.util.zip 을 이용하는 방법 (한글깨지는 문제 있음)
http://eunicon.tistory.com/26

□ 한글 깨짐 문제 해결하기

※ jazzlib 를 이용하는 방법
http://tjsoftware.tistory.com/5
http://jazzlib.sourceforge.net/
http://sourceforge.net/projects/jazzlib/files/jazzlib/0.07/jazzlib-binary-0.07-juz.jar/download

※ rt.jar 를 수정하는 방법
http://www.okjsp.pe.kr/bbs?act=VIEW&seq=28723&bbs=bbs4&keyfield=subject&keyword=zip&pg=0

※ commons-compress 를 이용하는 방법
http://javafreak.tistory.com/226
http://commons.apache.org/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") );

그외에 추가 기능은 소스코드를 보면 된다.



이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band