자바 프로그램에서 zip 파일을 만들어야합니다.Zip 파일로 작업 할 자바 라이브러리
나는 zip 파일을 생성하고 텍스트와 파일의 항목을 저장할 수있는 라이브러리가 필요하며 가장 중요한 것은 그 안에 전체 디렉토리를 저장할 수 있어야한다는 것입니다 (다른 디렉토리의 여러 레벨을 가진 디렉토리 각각에 파일이 있음).
저에게 제안 해 주실 수 있습니까?
자바 프로그램에서 zip 파일을 만들어야합니다.Zip 파일로 작업 할 자바 라이브러리
나는 zip 파일을 생성하고 텍스트와 파일의 항목을 저장할 수있는 라이브러리가 필요하며 가장 중요한 것은 그 안에 전체 디렉토리를 저장할 수 있어야한다는 것입니다 (다른 디렉토리의 여러 레벨을 가진 디렉토리 각각에 파일이 있음).
저에게 제안 해 주실 수 있습니까?
(java.util.zip
) : 당신의 높은 수준의 기능에 대한
http://download.oracle.com/javase/1.5.0/docs/api/java/util/zip/package-summary.html
이되지 않을 것 그 일부 기능을 재귀 적으로 디렉토리를 통과하고 파일을 ZipOutputStream
에 복사하기가 어렵습니다 - 아마도 50 줄 미만의 코드입니다.
http://www.javareference.com/jrexamples/viewexample.jsp?id=108에 좋은 예가 있습니다. 단일 파일을 처리하는 데 약간의 작업이 필요합니다.
일반적으로 Apache (또는 더 구체적으로는 Apache Commons)에서 고려해야 할 사항이 있습니다. 나는 이것을 찾았다 : http://commons.apache.org/compress/zip.html (나는 그것을 체크하지 않았다).
"더 나은"zip 파일을 만드는 것만 보이고, 디렉토리 트래버 설 또는 실제로 디스크 파일에서 zip 파일로 복사하는 모든 것. – Alnitak
체크 아웃 Zip4j은 - http://www.lingala.net/zip4j/
오늘은이 문제로 실행했는데 내가 JDK는 우리가하고 싶어 그런 낮은 수준의 쓰레기을 거부합니다. 희망이 작은 도서관은 유명한 7zip 라이브러리의 결합은 자바가
Maven을 통해서도 availble을 사용할 수 있습니다. http://mvnrepository.com/artifact/net.lingala.zip4j/zip4j – ripper234
작동합니다, 당신은 http://sevenzipjbind.sourceforge.net/
7zip은 zip과 동일하지 않습니다. – Alnitak
7zip 라이브러리의 Java 바인딩은 개인적인 경험을 통해 Zip, GZip, RAR 및 기타 형식 (읽기 및 쓰기 용) –
easyzip4j
에서 확인해 GitHub의에서 다운로드 할 수 있습니다.
https://github.com/willwarren/easyzip4j/downloads
사용은
EasyZip.zip("./folderToZip", "./myZipFile.zip");
또는
이 (또한 추가 정보 https://github.com/willwarren/easyzip4j/blob/master/README.md에 포함)
EasyZip.zip("./folderToZip", "./myZipFile.zip",
new EasyZipParameters().setZipFolderContentsNotFolder(true));
은 받는다는 기반 프로젝트입니다.
체크 아웃 수있는 또 다른 옵션은 https://github.com/zeroturnaround/zt-zip
에서 메이븐 중앙 및 프로젝트 페이지에서 제공 ZT-우편이다 그것에는 표준 패킹 (파일 시스템 스트림에와에) 포장을 풀고 기능 + 헬퍼 메소드를 많이 아카이브의 파일을 테스트하거나 항목을 추가/제거합니다.
종속성이 너무 많습니다.하지만 멋진 코드입니다. – marcolopes
현재 유일한 의존성은 org.slf4j.slf4j-api입니다. – toomasr
그러나 java.util.zip은 전체 디렉토리를 저장할 수 없으므로 직접 작성해야합니다! – RYN
사실, 당신은 디렉토리 구조를 횡단하고'ZipOutputStream' 자신에게 물건을 덤프해야 할 것입니다. – Alnitak
btw, 그 예제는 borked입니다. 디렉토리에있는 파일을 적절하게 반복하지 않는 것과 같은 주요 컴파일 문제가 있습니다. – stevebot