4

Java コードから読み取ることができる .Net から Zip ファイルを作成しようとしています。

SharpZipLib を使用して Zip ファイルを作成しましたが、生成されたファイルが #ZipLib ライブラリの CheckZip 関数に従って有効であり、WinZip または WinRar を介して正常に解凍できる場合、Java を使用して解凍しようとすると常にエラーが発生します。 Java の .Utils.Zip クラス。

問題は、SharpZipLib によって書かれた間違ったヘッダーにあるようです。また、SharpDevelop フォーラムに質問を投稿しましたが、結果はありませんでした (情報については、http://community.sharpdevelop.net/forums/t/8272.aspx を参照てください)。結果なし。

.Net で Zip ファイルを圧縮し、Java.Utils.Zip クラスで圧縮解除するコード サンプルを誰かが持っていますか?

よろしくマッシモ

4

6 に答える 6

9

DotNetZipライブラリを使用しましたが、正常に動作しているようです。典型的なコード:

using (ZipFile zipFile = new ZipFile())
{
  zipFile.AddDirectory(sourceFolderPath);
  zipFile.Save(archiveFolderName);
}
于 2008-09-16T10:35:01.103 に答える
2

.NET で ZipPackage クラスを使用したくありません。標準の zip モデルではありません。その通りですが、よく知られている名前のマニフェストなどを使用して、ファイル内の特定の構造を想定しています。ZipPackage は、Office ドキュメントと XPS ドキュメント用に最適化されているようです。

http://www.codeplex.com/DotNetZipのようなサードパーティ ライブラリは、汎用の ZIP ファイルを使用していて、優れた相互運用性が必要な場合に適しています。

DotNetZip は、Java の java.utils.zip を含むほぼすべてのものと非常に相互運用可能なファイルを構築します。ただし、ZIP64 や Unicode など、Java がサポートしていない機能の使用には注意してください。ZIP64 は、Java が現時点で十分にサポートしていない非常に大きなアーカイブにのみ役立ちます。Java は特定の方法で Unicode をサポートしているため、DotNetZip を使用して Unicode ベースの ZIP ファイルを生成する場合は、いくつかの規則に従うだけで問題なく動作します。

于 2009-01-04T03:31:47.020 に答える
2

SharpZipLib では役に立ちませんが、 ZipPackageクラスSystem.IO.Packagingを使用して、サード パーツ ライブラリを使用せずにzip ファイルを作成することができます (.NET 3+ が必要)。

于 2008-09-16T10:32:09.563 に答える
1

LinuxでSharpZipLibで圧縮されたファイルを解凍すると、同様の問題が発生しました。私はそれを解決したと思います(LinuxとMacで動作し、テストしました)、私のブログ投稿をチェックしてください:http://igorbrejc.net/development/c/sharpziplib-making-it-work-for-linuxmac

于 2009-01-28T09:43:34.123 に答える
1

それが本当に適合する ZIP ファイルであるかどうかを判断するには、PKZIP の.ZIP File Format Specificationを参照してください。

価値があるのは、SharpZipLib を使用して Windows Mobile デバイスで ZIP を作成し、それらを WinZip または Windows XP の組み込みの圧縮フォルダー機能で開くことに問題はありませんでした。モバイルデバイス上の独自の ZIP 抽出ユーティリティ (基本的には zlib のラッパー)。

于 2008-09-16T12:55:28.567 に答える