0

パスを持つzipファイルがあります。ファイルを解凍してターゲットフォルダーに配置すると、パスのフォルダーが作成されます。

public boolean doZip(String fileName, String zipfilename) {

    boolean zipStatus = true;

    try {
        String[] filesToZipP = new String[1];
        filesToZipP[0] = fileName;
        byte[] buffer = new byte[1000];
        ZipOutputStream out =
            new ZipOutputStream(new FileOutputStream(zipfilename));

        out.setLevel(Deflater.DEFAULT_COMPRESSION);

        for (int i = 0; i < filesToZipP.length; i++) {
            FileInputStream in = new FileInputStream(filesToZipP[i]);
            out.putNextEntry(new ZipEntry(filesToZipP[i]));

            int len;
            while ((len = in.read(buffer)) > 0) {
                out.write(buffer, 0, len);
            }
            out.closeEntry();
            in.close();
        }
        out.close();
    }
    catch (IllegalArgumentException e) {
        zipStatus = false;

    }
    return zipStatus;
}
4

2 に答える 2

0

そのためには、自分のパスとファイルの名前を使用するだけです。

fis = new FileInputStream(dirList[i])
ZipEntry anEntry = new ZipEntry(rootName + "/" + dirList[i].name)
zos.putNextEntry(anEntry)

zipファイルにフォルダが含まれていない場合はrootName=""を使用します。基本的に、パスはzipファイルのルートからの相対パスである必要があります。私が何を意味するのか理解していただければ幸いです。

于 2013-02-12T12:40:43.433 に答える
0
   String name = new File(filesToZipP[i]).getName();
   out.putNextEntry(new ZipEntry(name));
于 2013-02-12T12:40:46.613 に答える