3

そこにある rtf ファイルを取得するために解凍する必要があるデータベースから圧縮されたバイトの文字列を取得しました。これが要件です。

DotNetZip を使用しようとしましたが、50% の成功率が得られました。失敗した 50% により、サポートされていない暗号化 (0x09、deflate64) エラーが発生しました。したがって、私の問題は、圧縮された文字列の一部が deflate64 を使用して圧縮されているのに対し、他の一部は圧縮されていないことだと思います。理由がわからない。

zlib、DeflateStream、およびかなりの数の無料パッケージが deflate64 をサポートしていないことがわかりました。SevenZipSharp と KarnaCompression (C# への Info-zip のポート) はそれをサポートしていると主張していますが、両方のライブラリを使用するとエラーが発生し続けます。

SevenZipSharp は、Google が応答しない「データ エラー」例外を表示し、KarnaCompression は、KarnaCompression までさかのぼることができない「不正な形式のプログラムをロードしようとしました」というランダムな例外を表示します。

ライブラリを使用して deflate64 でエンコードされたファイルを解凍する実際の例はありますか? または、zip が deflate64 でエンコードされたファイルなどではないことを証明する方法を教えてもらえますか?

Xceed ライセンスに 700 ドルを支払うのは最後の選択肢です。

4

2 に答える 2

3

これと同様の問題がありました。

私の問題は、64 ビット exe から unzip32.dll を呼び出そうとしていたことです。

これをチェックしてください: 64ビット.Netアプリケーションでインポートする32ビットdll

于 2010-07-22T00:40:43.143 に答える
0

SevenSharpZip は、ネイティブ 7zip dll の単なるラッパーです。純粋な .NET 圧縮ソリューションとして SharpZipLib を好みますが、Deflate64 はサポートしていません。私はサポートを追加することにクラックがありましたが、ZIP の実装に慣れていません。標準はありますが、実装が異なると非常に異なります。最終的に SevenSharpZip を使用することになりましたが、最近エラーが発生しました。操作を実行する前にアーカイブをバックアップする機能を追加しているので、他の人にもお勧めします。

于 2011-08-19T04:22:42.410 に答える