我怎样才能从zip文件中删除路径

时间:2013-02-12 12:25:41

标签: java

我有一个包含路径的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;
}

2 个答案:

答案 0 :(得分:0)

为此,我只使用自己的路径和文件名。

fis = new FileInputStream(dirList[i])
ZipEntry anEntry = new ZipEntry(rootName + "/" + dirList[i].name)
zos.putNextEntry(anEntry)
如果您的zip文件不包含任何文件夹,则使用rootName =“”

。 基本上,您的路径必须相对于zip文件的根目录。 我希望你明白我的意思。

答案 1 :(得分:0)

   String name = new File(filesToZipP[i]).getName();
   out.putNextEntry(new ZipEntry(name));