解压缩文件 - 路径

问题描述:

我想解压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

*“奇怪的路径”*模糊的描述。 Zip中有什么路径?提取路径的根源是什么?你期望什么类型的路径?你得到什么类型的路径? –

+0

问题清楚了吗? –

+0

注意:如果您使用Java SE 7,请考虑使用新的NIO File API来处理文件和Zip文件。 – Puce

据我所知,你的entry.getName()不会返回,可以用来打开文件有用的东西。请记住,这只是一个zip条目而不是一个物理文件。 我建议你使用zipFile.getInputStream来存储数组中的每个条目的inputStreams,然后从输入流中提取你的内容,最后当它们对你无用时关闭这些流。