Windows で Zip の解凍・圧縮 ― 2010/11/07 08:10

雲は、意外と、変なことにこだわるところがあって、必要もないのにWindowsでのZipの解凍・圧縮の方法を探していました。なかなか、普通に検索していると見つからない(Microsoftが明文化していない)のですが、それでも、いくつか見つけることが出来ましたので紹介しておきます。
ZIP 圧縮・展開 01 ~ 03
http://eternalwindows.jp/installer/zip/zip01.html
http://eternalwindows.jp/installer/zip/zip02.html
http://eternalwindows.jp/installer/zip/zip03.html
shell32.dllでファイル圧縮(VC++)
http://www.softist.com/programming/shell32-zip/shell32-zip.htm
CopyHereの挙動
http://www.okalabo.office-on-the.net/okalog/34-dialy/73-copyhere306e631952d5
Decompress Zip files with Windows Shell API and C#
http://www.codeproject.com/KB/cs/decompresswinshellapics.aspx?msg=1583265
00_Windows XP以降の圧縮・展開機能を使う
http://mrxray.on.coocan.jp/Delphi/plSamples/733__ArchiverWindowsZIP.htm
VBScriptでファイル圧縮
http://okwave.jp/qa/q2006207.html
ZIPファイルの中身を削除するバッチファイル
http://scripting.cocolog-nifty.com/blog/2007/04/zip_97c3.html
ZIPファイルを作成/追加/置換するバッチファイル
http://scripting.cocolog-nifty.com/blog/2007/04/zip_4d41.html
ZIPファイルの中身を一覧するバッチファイル
http://scripting.cocolog-nifty.com/blog/2007/04/zip_6a3d.html
ZipPackage - .NET Framework 3.0(.Net で ZIP の圧縮解凍)
http://www.ailight.jp/blog/sha256/archive/2006/08/25/11944.aspx
以下、いろいろ。
物理メモリ容量を取得する(Shellオブジェクトの生成方法)
http://www.usefullcode.net/2006/12/post_15.html
Shellオブジェクト (ShellApplication)
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/shell.htm
IShellDispatch2オブジェクト (Shell.Application)
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/shell2.htm
【VC++】CからCOMを呼べば、Shell.Application と Wscript.Shell でスタンバイ状態にできる
http://maglog.jp/lightbox/Article421014.html
_variant_t を使用して、楽して安全にデータ変換
http://isobe.exblog.jp/2060639/
COM基礎
http://eternalwindows.jp/com/combase/combase00.html
【結論】
いろいろと、COM から ZIP を解凍しようと努力をしましたが、残念ながら、MoveHere で解凍すると同じファイルを永遠と解凍するという、謎な現象がどうしても収まらないため、挫折しました。Microsoft。少なくとも標準の圧縮フォーマットを ZIP にするのなら、ZIP の圧縮・解凍の API は明示的に示すべきではないのか?朝から、怒り気味の雲です(かなり不愉快)。いずれにしても、残念な結論です。ということで、以下のライブラリを使うことにしました。
ZLIB
zlib の使い方
zlib 入門
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。