2009-06-26 13 views
16

私はjava.util.Zipおよびjava.util.ZipEntryを使用して、zipファイルの内容をディスクに追加します。 * nixファイルシステムで解凍するときに設定されたファイルパーミッションを維持したいと思います。JDK 5を使用してzipファイルから抽出するときのファイルアクセス許可を維持するapi

誰でも私に「正しい」方法を教えてもらえますか?コモンズ圧縮で

+0

これはかなり古い投稿ですが、あなたはその問題を解決しましたか? 私は今同じ問題を抱えています。これまでのところ実行可能ファイルに影響を与えるように思えます... "手動で"解凍すると、許可は正しいです – dm76

+0

私は実際にそれを解決していません。私の最後のアプローチは、zipファイルを操作して何をしているのかを判断するために、Apacheのantタスクを分離することでした。 –

+0

アリは、Java 6のJava.io.Fileの新機能を使用して1.8以降しかできません。(私の答えは下記を参照してください) – dm76

答えて

1

これはかなり古いですが、私はここで終わったので、...

この質問はたくさんの情報提供:郵便番号/ジャーでcreating a jar file - preserving file permissions

基本的に、あなたすることはできませんSTORE(UNIX)ファイルのパーミッションをファイルであるため、jarを解凍するときにそれらを保存することはできません(jarが最初に作成されたときには失われていました)。 アーカイブに保存されたファイルのパーミッションが必要な場合や、エクストラクション時にリストアされたときに復元される場合、代替の.tarまたは.tar.gz/.tar.bz2形式を考慮する必要があります。これは、ほとんどのJavaビルドツール、Maven ...)

1

ルック:

http://commons.apache.org/compress/

とTarArchiveEntryを見て、あなたはそれがしたいようにファイルのアクセス権を保持する必要があります。

TarArchiveEntry entry = tarInput.getNextTarEntry(); 

http://commons.apache.org/compress/apidocs/index.html

私は怒っコモンズを行ってきたと思います...

+0

TarArchiveEntryはzipファイルとtarファイルで動作しますか?彼らは同じではありません、そうですか? – Cheeso

+0

私はCheesoに同意します - これはzipファイルと何が関係していますか? – dm76

+0

また、ZipArchiveEntry https://commons.apache.org/proper/commons-compress/zip.html – Josejulio

8

私は正しく権限を維持するために、実際には不可能だと思います。

権限は非常にOSに依存します。POSIXファイルのアクセス権では、ファイル所有者、グループなどのファイルを読み書きできるかどうかを設定できますが、NTFSファイルシステムは同様のシステムですが、実行許可が存在しないためです。そして初期のFAT/FAT32ファイルシステムでは、ファイルアクセス権(読み取り専用属性の一部)はまったくありません。

javaのは、基礎となるOSに応じて、新しく作成された(解凍された)ファイル上で適切に権限を設定するためのクロスプラットフォームなので、それは難しいだろう....

、請求、Java 6のは、新しいJavaを持っています.io.Fileクラスは、(setExecutable()、setReadable()などのメソッドを使用してアクセス権を設定できるようにします。http://java.sun.com/javase/6/docs/api/java/io/File.htmlを参照してください)

これらは、私の関心事であったsetExecutable Linuxファイルシステム上で実行可能ファイルを解凍する必要があるとき。また、実行可能ファイルの概念を持たないWindowsや他のシステムで実行している場合、この方法では何もしないため、実行中のOSを把握する必要はありません。

+1

もあります。このスレッドはかなり古くなっていますが、あなたの答えは私を助けました。私はMac OS上で***のアプリケーションを抽出しようとしていましたが、結果のアプリケーションが起動し、setExecutable()メソッドを使って実際のランチャーファイルの権限を変更しました。助けてくれてありがとう :) –

関連する問題