パスワードを忘れた? アカウント作成
20454 journal

saeki-kの日記: .NET Framework 3.0のZipPackageクラス

日記 by saeki-k

2007年11月11日のエントリーで、「Windows PowerShellから.NET FrameworkのZipPackageクラスを呼び出せば、PowerShellでzipファイルが作れる。」と書きました。それ自体は今でも間違っていないんですが、ZipPackageクラスは、OPC (Open Packaging Conventions)で定義されたデータパッケージを扱うためのクラスであり、一般のzipファイルを作るのには不向きなようです。

私が使っている圧縮・伸長ツールExplzhは、先日のバージョンアップで、「先頭から30 byte目に‘[Content_Types].xml’の文字があるzipファイルを書庫と見なさないようにした。」という変更が入りました。Microsoft Office 2007のドキュメントファイル(docx、xlsx等)がOPCに準拠したものになっており、これらをzipと見なさないようにするための変更なのですが、裏を返せば、ZipPackgeクラスを使って作成したzipファイルは、書庫と見なされなくなってしまうということになります。

ZipPackageでzipファイルを作ると‘[Content_Types].xml’が入るということは当初から知っていて、単にこれが入るだけなら無視すればいいやと思ってたんですが、書庫として見なされなくなってしまうとあれば、これはかなり苦しい。Explzhの判定方法が正しいのかどうかは今のところ不明ですが、ほかにもこういう対応をするアプリケーションが存在する可能性はあるわけで、ZipPackageで(一般の) zipファイルを作るのは、とりあえず避けることにします。

.NETアプリケーションでzipファイルを扱うためのライブラリとして、「DotNet Zip Library」というのがあるようです。「Windows標準機能のみでzipファイルを作る。」という目的は果たせませんが、マネージドコードだけでzipファイルを扱えるという点で、私の探していたものの一つです。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...