問題タブ [zipoutputstream]

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 に答える
338 参照

c# - ZipOutputStream ZipEntry はミリ秒単位の情報を失っています

C#でSharpZipLibを使用して、私は使用しています:

zip ファイルは問題なく作成されますが、サードパーティの解凍ツールを使用して解凍すると、ファイルの変更日でミリ秒単位の情報が失われていることがわかります (ミリ秒単位の情報は私にとって非常に重要です)。ZipEntry のコードとその DateTime プロパティを見ました

このエントリの日時として zip ファイルに書き込まれる内容は次のとおり です ms dos フォーマット時間。fileinfoの「LastWriteTime」から取得した元のDateTimeにあった変更された日時にすべてが最終的なzipファイルに含まれるように、これをどのように書くか教えてください。

ありがとう。

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

java - 圧縮された byte[] をファイルに書き込む

byte[]メモリ内にzipファイルを書き込んでから、それをディスクに書き込もうとしています。結果の zip ファイルは破損しています。

これは機能します:

これは壊れており、破損した zip ファイルを作成します。

2番目のものが機能しないのはなぜですか?生で操作する必要があると仮定して、どうすれば修正できますか(他の目的でbyte[]必要になるため、zipファイルをファイルに直接作成することはできません)。byte[]

0 投票する
0 に答える
545 参照

java - Java で jar ファイルの META-INF フォルダーを削除する

次の方法を使用して、META-INF フォルダーとその内容を除外しています。

ここにある方法: https://stackoverflow.com/a/22433569/3952266

唯一の問題は、新しいファイルを作成するときに、元のサイズの 10 分の 1 のファイルしか出力しないことです。

0 投票する
0 に答える
161 参照

java - ZipOutputStreamはファイルを含むzipを作成し、ディレクトリを含めないでください

既存のファイル (xml) を取得して、zip ディレクトリに配置しようとしています。私が遭遇している問題は、xml ファイルが現在存在しているディレクトリも zip に書き込まれることです。誰もこれについて考えていますか?

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

java - Java Create 100MB zip 形式の csv ファイルのパフォーマンスの問題

Javaを使用してCSVファイルを含む100MBの圧縮ファイルを5秒以内に作成する必要があります。CSV ファイルを含む test.zip を作成しましたが、zip ファイルの生成に時間がかかりすぎます (~30 秒)。これまでに書いたコードは次のとおりです。

私はスーパーcsvライブラリを使用していますが、スーパーcsvライブラリなしでメモリ内にzipファイルを作成しようとしましたが成功しませんでした。手伝ってくれませんか?

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

java - iText - 1000 以上の PDF を作成する OutOfMemory

PDF-As で満たされた ZipOutputStream を作成したいと考えています。iText (バージョン 5.5.7) を使用しています。1000 を超える pdf エントリの場合、doc.close() で OutOfMemory-exception が発生し、リークが見つかりません。

PdfBuilder

どうすれば修正できますか?私は何かを忘れていますか?私はすでに Java ZipOutputStream を使用しようとしましたが、違いはありません。


答えてくれてありがとう!ByteOutputStream の問題は理解していますが、私の場合は何が最善のアプローチなのかわかりません。これは Web アプリケーションであり、どうにかして zip をデータベース blob にパックする必要があります。

私が今行っているのは、iText を使用して PDF を ZipOutputStream に直接作成し、対応する ByteArrayOutputSteam のバイト配列を blob に保存することです。私が見るオプションは次のとおりです。

データを 500 個のオブジェクト パッケージに分割し、最初の 500 個の PDF をデータベースに保存し、次に zip を開いて次の 500 個を追加します...しかし、これにより、現在と同じ状況、つまり大きすぎることが生じると思います。ストリームがメモリで開かれました。

サーバーにPDFを保存してみてください(十分なスペースがあるかどうかはわかりません)、一時的なzipファイルを作成してから、バイトをブロブに送信してください...

提案/アイデアはありますか?

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

java - Java ZipOutputStream は一部のファイルを書き込みますが、他のファイルは書き込みません

Java の ZipOutputStream クラスを使用して、大きな zip ファイルを作成しています。

zip ファイルに 1000 個のサブファイルとサブフォルダーしかない場合は問題なく動作します。zip ファイルに 10000 個のサブファイルとサブフォルダーしかない場合にも問題なく動作します。

しかし、何らかの理由で、100000 を超えるサブファイルとサブフォルダーに増やすと、問題が発生し始めます。

それでもサブファイルの大きなチャンクを書き込みますが、その後終了します。最終的に、予想していたディレクトリ ツリーの約半分を含む zip ファイルが作成されます。

zip ファイルは 4GB の上限サイズに達していません。終了後、zip ファイルは全体で約 30MB しかありません。zip ファイル内の各サブファイルのサイズは 1KB 未満です。

zip ファイルのレイアウトは単純です。

ルート フォルダには 10 個のサブディレクトリが必要です。

これらの各サブディレクトリには、10 個のサブディレクトリが含まれている必要があります。

これは、各サブディレクトリが 10 個のファイルを保持する第 4 レベルまで続きます。

ただし、実行後、最初のレベルには 5 つのディレクトリしか保持されず、最初のレベルの最後のディレクトリには 2 つのサブディレクトリしか保持されません。

関連するコードは次のとおりです。

ZipOutputStream が終了する前に書き込むことができるファイルの最大数があるかどうか疑問に思っています。または、 FileOutputStream がそうするかもしれません。わからない。

あなたの助けに感謝します。ありがとうございました。