問題タブ [apache-commons-compress]

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 投票する
1 に答える
704 参照

java - メモリ内の ArchiveInputStream を解凍する

apache commons compress lib の ArchiveInputStream からの ArchiveEntry が別の Archive である場合、その archiveEntry をメモリに解凍できる可能性はありますか?

ありがとう

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

android - XZ圧縮時のandroid dlavikvm-heap out otメモリ割り当て

API 2.3.3 で tar を tar.xz に圧縮しようとしています。

私が何をしても、このエラーが発生します:

それを引き起こしているコードは次のとおりです。

これのいくつかの異なるバージョンを作成しましたが、すべて同じエラーが発生します。アプリケーションに画像ギャラリーをロードしていますが、ギャラリーをロードせずに圧縮しようとしましたが、同じ結果が得られました。

誰でも問題が何であるか知っていますか? 解決策は何ですか?それとも、tar を tar.xz に圧縮するコードですか?

助けてくれてありがとう。

ジェイダイ。

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

java - Apache Commons Compressを使用して.tarアーカイブにファイルを追加するにはどうすればよいですか?

Javaでtarアーカイブにファイルを追加するにはどうすればよいですか?を読みました。、アーカイブ全体を読み書きせずにファイルをアーカイブ追加し、既存のコンテンツを上書きせずにtarファイルにエントリを追加しますが、適切な回答は得られませんでした。さらに、コメントを投稿するのに十分な評判がありません。そこで、ここで新しい質問を作成しました。

tarアーカイブにファイルを追加する方法はありますか?すでに存在するファイルを置き換えたいのですが。

次のメソッドを書き始めましたが、ファイルを追加するとアーカイブの内容が消去されます。apachecompressのWebサイトで例は見つかりませんでした。

0 投票する
6 に答える
32226 参照

java - Commons Compress でディレクトリを tar.gz に圧縮する

commons 圧縮ライブラリを使用してディレクトリの tar.gz を作成する際に問題が発生しています。次のようなディレクトリ構造があります。

次のコードを使用して圧縮を行っています。例外なく問題なく動作します。しかし、その tar.gz を解凍しようとすると、「childDirToCompress」という名前の単一のファイルが取得されます。正しいサイズであるため、tar プロセスでファイルが互いに明確に追加されています。望ましい出力はディレクトリです。何が間違っているのかわかりません。賢明なコモンズコンプレッサーで正しいパスを設定できますか?

0 投票する
3 に答える
2427 参照

java - 並列 BZip2 圧縮

Apache Commons Compress for Java を使用して、複数のログ ファイルを 1 つのアーカイブに圧縮します tar.bz2

ただし、1日に約20GBのファイルを圧縮するため、圧縮には非常に長い(12時間以上)かかります。

このライブラリはファイルをモノスレッドで圧縮するため、これをマルチスレッドで行う方法があるかどうか知りたいです。

多くの解決策 (コマンドライン pbzip2 またはいくつかの C++ ライブラリ) を見つけましたが、Java について見つけたのは次のブログ投稿だけです。

https://plus.google.com/117421466255362255970/posts/3jfKVu325zh

Java アプリケーションでは使用できないようです。

そこに何かありますか?あなたは何をお勧めします?または、 bzip2 のような同様の圧縮率を持つ別のより高速なソリューションはありますか?

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

java - Apache commons 圧縮ライブラリを使用して ZipArchiveInputStream から個々のファイルの内容を取得する方法

org.apache.commons.compress.archivers.zip.ZipArchiveInputStream オブジェクトがあり、そこから各 ArchiveEntry アイテムを取得し、個々のファイルのメタデータを取得できます。しかし、各ファイルの内容を Blob として取得する方法を知る必要があります。

org.apache.commons.compress.archivers.zip.ZipFile を使用して実行できますが、ZipFile には、物理​​的または一時的な File オブジェクトまたはファイルの場所を持つコンストラクターがあります。このための一時ファイルを作成したくありません。

ZipArchiveInputStream を ZipFile に変換する方法があったとしても、間接的に問題を解決できます。

つまり、私の要件は、InputStream/Blob から Zip ファイルを読み取り、個々のファイルを BLOB としてデータベースに格納することです。

参考までに: 私は org.apache.commons :: commons-compress :: 1.4.1 を使用しています

解決策/アイデア/提案は大歓迎です。

乾杯クム

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

java - JavaでCommons Compressで解凍した後にZIPアーカイブを削除するには?

ZIP アーカイブを解凍し、その中にあるアーカイブを再帰的に解凍または抽出するプログラムを作成しました。ZIP 内のアーカイブは tar または ZIP アーカイブである可能性があり、問題なく抽出できます。

新しいディレクトリ内の内部アーカイブを抽出した後、それらを削除したいと思います。これは tar アーカイブでは問題なく機能しますが、何らかの理由で ZIP アーカイブでは機能しません。すべてのストリームを閉じました。削除に失敗した場合は、deleteOnExit をフェールセーフとして使用しますが、それも機能しません。

ArchiveInputStream を閉じても実際にストリームが閉じられない限り、開いているストリームがあってはなりません。しかし、これも tar アーカイブで機能します。

親ファイルでlistFiles()を呼び出し、ZIPアーカイブを見つけて削除することでZIPアーカイブを削除できることをどこかで読みましたが、これは奇妙な複雑なプロセスのように聞こえます。もっと簡単な方法があるはずです。

編集:

この問題は Windows に固有のものです。Linux (SliTaz 4 および Red Hat Enterprise 5) では、これは問題なく動作します。これは、Windows がどういうわけか ZIP アーカイブをロックしていることを示しています。これは少し奇妙に思えます。

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

java - InputStreamから作成されたZipArchiveInputStream、コンテンツを読み取ることができません

作業コード:

コードが機能しない

アイデアはInputStreamから読み取るのではなく、inputStreamからZipArchiveInputStreamを作成して、canReadEntryData()メソッドを利用できるようにします。canReadEntryData()は完全に正常に機能します。通常のファイルではtrueを返しますが、ZipArchiveInputStreamからコンテンツを読み取ることができません。

助けてください。どこが間違っているのかを教えてください。

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

java - java.util.zip.ZipException: 格納されたブロックの長さが無効です

ZipArchiveEntry を文字列に読み込もうとしています。以下のコードがあり、例外が発生しました

私のコードは以下の通りです

そして、次の例外が発生します

本当に長い間それに固執しました。助けてください。

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

java - commons.apache.compressを使用してネストされたzipファイルにエントリを追加する

私のZipファイルの構造は次のようなものです。

t1.zip -> t2.zip -> sample.txt

sample.txtを置き換えたい。それが1つのレベルであれば、私はそれを行うことができました。マルチレベルのネストされたzipファイルを手伝ってください。

私のサンプルコード

私は試した

私の意図は、apacheのドキュメントページの例に従うことでした。

しかし、私は明確ではありません、アーカイブエントリ2レベルを内部に配置する方法は?