2013-02-11 53 views
0

我正在爲我正在製作的程序開發一個安裝程序,它使用一個zip文件,出於某種原因,我無法找到解壓縮和從zip文件夾安裝文件的方法。如果有人能幫助我,我會非常高興。用java來移動文件的一些方法是什麼?

+0

可能看看這個API:http://docs.oracle.com/javase/6/docs/api/java/util/zip/package-summary.html – 2013-02-11 21:39:05

+0

*「我正在開發一個安裝程序一個程序「*使用[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)作爲安裝程序! – 2013-02-11 21:39:32

+0

查看java.util.zip API(http://docs.oracle.com/javase/6/docs/api/java/util/zip/package-summary.html)並查看是否有任何內容可以幫你。 – 2013-02-11 21:40:23

回答

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(); 
    } 
1

雖然java.util.zip和Apache的commons-IO提供了很好的機制來讀取數據從Java中的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,而不是推倒重來。

+0

+1「最簡單」(不是我的首選)和IZPack – MadProgrammer 2013-02-11 22:44:38

相關問題