問題タブ [zip4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1433 参照

java - Zip4j に最後に追加されたファイルがありません

Zip4j ライブラリを使用して一連のファイルを圧縮しようとしています。圧縮するファイルのファイル パスのリストを渡し、それらを 1 つずつ zip ファイルに追加します。何らかの理由で、最後のファイルが追加されません。ループのインデックスを確認しましたが、正しいと確信しています。例外やエラー メッセージが表示されません。これが私のコードです:

すべてのファイル パスは、追加時に出力されます。何か案は?

0 投票する
2 に答える
1234 参照

android - zip4j: 暗号化されたファイルからストリームを取得すると、暗号化されていない一時的なステージング領域が作成されますか?

Androidでzip4jを使用して暗号化されたzipファイルを読み取る次のコードがあります。一時ファイルは提供しません。zip4j は復号化のために一時ファイルを作成しますか? それとも、暗号化されたデータが一時的にストレージに書き込まれないように、zip 標準ではオンザフライで復号化が可能ですか?

0 投票する
4 に答える
7117 参照

java - zip4j ディレクトリの解凍方法

zip4j を使用して zip からディレクトリを抽出する必要があります。ディレクトリ内の各ファイルを見つけて抽出できました。

ディレクトリ内のファイルを一覧表示するにはどうすればよいですか?

または、ディレクトリをパスに抽出するユーティリティはありますか?

0 投票する
1 に答える
2011 参照

java - 大量のファイル用の Java zip ライブラリ

100.000 以上のファイルがあり、それらのほぼ 4GB があります。そのhtmlなので、70〜80%圧縮できます。ファイルの範囲は 200 KB からほぼ 10 MB です。

ファイルをxmlからhtmlに変換するアプリケーションを開発しています。最後に、アプリケーションは html ディレクトリを zip ファイルにアーカイブします。

「copy-maven-plugin」という Maven プラグインを使用しました。このプラグインのドキュメントはとても良く、使いやすかったです。プラグインが使用するアーカイブ機能はデフォルトで「ant zip」ですが、TrueZip を使用するように変更できます。その反対を開梱するため。とにかく、mye モンスター フォルダを両方の方法でパックしようとしました。デフォルトの Ant zip は 43 分、TrueZip は 38 分を使用しました。私の意見では、どちらの方法でも大したことではありません。

次に、コマンドラインで「zip -rアーカイブフォルダー」を使用して同じことを試みましたが、わずか4分しかかかりませんでした。 編集:最近、40分未満でzipを取得できませんでした。たぶん、4分のものが壊れたzipになってしまったのではないかと思います。

だから、この量のファイルを処理することになると、Javaはそれほど良くないのではないかと考えていました。

誰もこの種の問題を知っているか、経験がありますか?

私はおそらく自分で実装することを考えていますが、バイト読み取りサイズを変更することでそれが役立つでしょうか? ZipInputStream/ZipOutputStream を Zip4j で使用して zip ファイルを作成/解凍し、独自のバッファー サイズを使用することで、読み取られるデータのチャンクを制限できることはわかっていますが、試したことはありません。永遠のようにかかるとき、私は見つけるのを待ち続けることができません;-)

昨夜の時点で、maven は zipIt.sh (zip -r ...) で exec を呼び出して妥当な時間内に作業を行いますが、Java に疑いの余地を与えたいと思います。

更新 1 私は testet のさまざまなアプローチを持っています (すべてデフォルトの圧縮レベル):

  1. Java からの zip4j。かかった時間はわずか3分。しかし、ファイルが壊れていました。zip4j はこの量のファイルを処理しないようです。
  2. Ant zip (maven プラグイン経由)。圧縮: 約 980MB。低速:約40分
  3. コマンドラインから tar + xz 。圧縮: 567MB。低速: 63 分。
  4. コマンドラインからzipします。圧縮: 981MB。速度: 40 分
  5. コマンドラインから tar + bz2。圧縮: 602MB。速度: 13 分
  6. コマンドラインから tar + gz 。圧縮: 864MB。速度: 5 分
  7. java.util.zip.ZipOutputStream. 圧縮: 986MB。速度: 燃える 4 分 18 秒

tar+bz2 と tar+gz はどちらも優れた代替手段のようで、圧縮するか速度を優先するかの選択肢を与えてくれます。

jdk7.0 ZipOutputStreamをテストしていませんでしたが、解決したようです。私は 64KB (64*1024) の読み込みバッファを使用しましたが、うまく機能しているようです。結局、私はJavaで金を打ったようです:-)

これは私の実装です

0 投票する
1 に答える
1854 参照

java - 新しいファイルを上書きせずにフォルダーを解凍する

既に存在するディレクトリにネストされたサブディレクトリを含む ZIP 形式の大きなフォルダーを解凍したいと考えています。ZIP フォルダ内のファイルは、解凍されたディレクトリに存在できます。そのファイルの日付が ZIP フォルダー内のファイルの日付よりも新しい場合にのみ、以前のファイルを保持する必要があります。ZIP 内のファイルの方が新しい場合は、上書きします。

これを行うための良い戦略はありますか?すでに truezip と zip4j をチェックしましたが、オプションが見つかりません (これまでのところ、私にとって最良のオプションは zip4j ソースを変更することですが、より良い方法であるはずです.

PS 正しく説明していない場合は、お気軽にお問い合わせください。英語は私の母国語ではないので、何か間違ったことを表現した可能性があります..

ありがとう。

0 投票する
2 に答える
2905 参照

java - 特定のフォルダー (ZIP 内) にファイルを追加する方法

次のコードは、java を使用してファイルを zip に追加する方法です。

この zip アーカイブの特定のフォルダーにファイルを追加するにはどうすればよいですか?

0 投票する
1 に答える
2023 参照

java - Zip4j が unix で作成された gz ファイルの解凍に失敗する

Zip4j は、UNIX で作成された gz ファイルを開いたり抽出したりできません。7Zip は問題なくファイルを開きます。zip は暗号化されていません。ファイル内のファイル ヘッダーを読み取る前に (ホスト タイプなど) 設定するオプションはありますか。

出力