作成中のプログラムのインストーラーに取り組んでいましたが、zip ファイルを使用していますが、何らかの理由で、zip フォルダーからファイルを解凍してインストールする方法が見つかりません。誰かが私を助けることができれば、私はとても幸せです.
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
および Apache commons-io は、Java で zip ファイルからデータを読み取る優れたメカニズムを提供しjava.util.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 に答える