0

我正在为我正在制作的程序开发安装程序,它使用 zip 文件,由于某种原因,我找不到从 zip 文件夹解压缩和安装文件的方法。如果有人可以帮助我,我会非常高兴。

4

2 回答 2

1

试试这个解压缩你的文件:

String zipName = "my.zip";
String installDir = "/home/user/installDir";
try
{
    ZipFile zipFile = new ZipFile(zipName);
    files = zipFile.entries();
    while (files.hasMoreElements())
    {
         ZipEntry zipEntry = files.nextElement();
         if(zipEntry.isDirectory())
         {
                (new File(installDir + zipEntry.getName())).mkdir();
                 continue;
         }
         InputStream in = zipFile.getInputStream(zipEntry);
         File newFile = new File("/home/user/tmp/testdit" + File.separator + zipEntry.getName());

         new File(newFile.getParent()).mkdirs();
         FileOutputStream fos = new FileOutputStream(newFile);
         byte[] buffer = new byte[1024];
         int len;

         while ((len = in.read(buffer)) >= 0)
         {
                fos.write(buffer, 0, len);
         }

         in.close();
         fos.close();
       }
   } catch (IOException ex)
   {
        ex.printStackTrace();
   }
于 2013-02-11T22:26:34.587 回答
1

虽然java.util.zipApache commons-io 提供了很好的机制来从 Java 中的 zip 文件中读取数据,但如果您真的想将 zip 文件解压到磁盘上并保留目录结构,那么最简单的 Java API 可能是 Apache Ant。

Project p = new Project();
p.init();
Expand ex = new Expand();
ex.setProject(p);
ex.setSrc(new File("myArchive.zip"));
ex.setDest(new File("targetDir"));
ex.perform();

但正如其他评论者所指出的,您可能应该考虑使用现有的安装程序构建工具,例如IZPack,而不是重新发明轮子。

于 2013-02-11T22:35:13.830 回答