-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();
    }
}
4

1 回答 1

0

AFAIK,您entry.getName()不会返回任何可用于打开文件的有用信息。请记住,这只是一个 zip 条目,而不是物理文件。我建议您使用zipFile.getInputStream为数组中的每个条目存储 inputStreams ,然后从输入流中提取您的内容,最后在这些流对您无用时关闭它们。

于 2012-12-04T10:24:56.650 回答