2010-11-18 2 views
5

디지털 문서 및 디지털 서명 작업을하고 있는데 문제가 발생했습니다.JAZipFile entries() 메소드에 디렉토리가 없습니다.

입력 : documentX.adoc - 파일과 폴더가있는 zip 파일입니다.

입력 파일의 모든 내용 (디렉토리 및 파일 목록)을 가져와야합니다.

는 어떻게해야합니까 무엇 : - 아직 아무것도

ZipFile adocFile = new ZipFile(documentXFileName); 
ArrayList <String> adocFiles = new ArrayList<String>(); 
Enumeration <? extends ZipEntry> entries; 
entries = adocFile.entries(); 
for (entries = adocFile.entries(); entries.hasMoreElements();) 
{ 
    adocFiles.add(entries.nextElement().getName()); 
} 

나는 ArrayList를 < 또는 ZipEntry를 만들 수 없다>와 이름 대신 ZipEntries를 추가하려고했습니다. 어쩌면 다른 방법이 있을까요? 이상한 것은 ZipEntry를가 documentation에서 마틴

+0

zip 파일을 검사하여 디렉토리가 실제로 만들어 졌는지 확인 했습니까? – Powerlord

+0

코드가 괜찮습니다. 아마도 외부 zip 도구에서 zip 파일 (주어진 파일 이름을 기반으로)을 열고 파일에 항목이 들어 있는지 다시 확인하십시오. 그게 효과가 있다면 자바 구현이 지원하지 않는 형식의 문제 일 수도 있지만 실제로 모르겠다. ... –

+0

예, 디렉토리가 있습니다. 나는 Zip 파일을 볼 수있다 (Far Manager로), 나는 모든 dir을 본다. 그리고 dir을보기 위해 그것을 추출 할 수있다. – Brutus

답변

8

을 .isDirectory() 메소드 ... 도움을

감사를 가지고있다 : 될 수있는 디렉토리 항목이 정의

하나의 이름이 '/'로 끝납니다.

디렉토리를 ZIP 파일로 저장할 필요는 없습니다.이 디렉토리는 선택 항목입니다. 이라는 항목없이 foo/bar.txt 경로의 바이트 시퀀스를 저장할 수 있습니다. Zip 도구는 그러한 것들이 아카이브 내에 존재하지 않는다고 생각하는 환상을 제공 할 수 있습니다.

관련 문제