2012-12-04 6 views
-1

Java로 파일의 압축을 풀고 모든 내용을 디스크에 쓰지 않고 배열 목록에 추가하려고합니다. 내가 겪고있는 문제는 특정 경로를 zip 파일로 전달한 다음 zip 파일을 읽고 목록에 파일을 추가 할 때 파일을 처리 할 때 프로젝트 디렉토리에 이상한 경로가 있음을 알 수 있습니다. 존재하지 않는다.파일 압축 해제 - 경로

누군가 나를 도와 줄 수 있습니까? 공공 무효 processZipFile (문자열 경로) {

File file = new File(path); 
    file.setReadable(true); 
    ZipFile zip; 
    ArrayList<File> files = new ArrayList<File>(); 
    try { 
     zip = new ZipFile(file); 
     Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip 
       .entries(); 
     while (entries.hasMoreElements()) { 
      ZipEntry entry = entries.nextElement(); 
      File f = new java.io.File(entry.getName()); 
      allFiles.add(f); 
     } 
    } catch (ZipException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
+3

* "이상한 길"* 막연한 설명. 우편 번호는 어떤 경로입니까? 추출 경로의 루트는 무엇입니까? 어떤 유형의 경로를 기대 했습니까? 어떤 경로를 얻었습니까? .. –

+0

는 충분히 명확한 질문입니까? –

+0

참고 : Java SE 7을 사용하는 경우 새 NIO File API를 사용하여 파일 및 Zip 파일을 사용하는 것이 좋습니다. – Puce

답변

0

AFAIK, 당신의 entry.getName()는 파일을 열 때 사용할 수있는 유용한 아무것도 반환하지 않습니다. 이것은 단지 zip 항목이며 실제 파일이 아님을 기억하십시오. zipFile.getInputStream을 사용하여 배열의 모든 항목에 대해 inputStream을 저장 한 다음 inputstream에서 내용을 추출하고 마지막으로이 스트림을 사용하지 않을 때 닫으십시오.