-1

ディスクに書き込むのではなく、Java でファイルを解凍し、すべての内容を配列リストに追加しようとしています。私が抱えている問題は、特定のパスをzipファイルに渡し、zipファイルを読み取ってファイルをリストに追加するときに、ファイルを処理するときにプロジェクトディレクトリ内に奇妙なパスがあることです。存在しない。

誰かがここで私を助けてくれますか? public void 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を保存し、inputstreamからコンテンツを抽出し、最後にこれらのストリームが役に立たなくなったら閉じることをお勧めします。

于 2012-12-04T10:24:56.650 に答える