CopyHere メソッドから Zip ファイルを処理することはできません

適用対象: Microsoft Windows XP Home EditionMicrosoft Windows XP ProfessionalWindows Vista Business

現象


スクリプトまたはプログラムから Shell のオブジェクトやインターフェイスにて ZIP ファイルを操作した場合、ZIP ファイルを正しく処理できない場合があります。
たとえば、すべてのファイルを処理せずに途中で終了したり、エラーが発生しているにもかかわらずエラーを示さずに終了したりすることがあります。
また、ユーザーの操作を求めるダイアログが表示され、ユーザー操作があるまで中断することがあります。

原因


エクスプローラーから、ユーザー操作以外の方法で ZIP ファイルを扱うことは想定されていません。
CopyHere メソッドを使用して ZIP ファイルからファイルを取り出したり、ZIP ファイルにファイルを格納したりすることもサポート対象外となります。

解決方法


OS が提供する機能を用いてスクリプトまたはプログラムから ZIP ファイルを操作することはできませんので、外部のライブラリを利用する必要があります。

たとえば、以下のライブラリを利用することにより、ZIP の操作を実現することが可能です。

DotNetZip - Zip and Unzip in C#, VB, any .NET language
http://dotnetzip.codeplex.com/

DotNetZip は Microsoft Public License で提供されており、ご自身の責任の範囲において利用することが可能です。
この資料に記載されている CodePlex の情報は、マイクロソフトと関連のない他社の製品に関するものです。明示または暗示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。