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 回答