C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C++でZIPファイルの解凍


(過去ログ 119 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■70123 / inTopicNo.1)  C++でZIPファイルの解凍
  
□投稿者/ nobb (7回)-(2014/02/25(Tue) 18:10:30)

分類:[C/C++] 

2014/02/25(Tue) 18:30:53 編集(投稿者)

開発環境:Windows7, Visual Studio2013, C++(MFC, MBCS)
実行環境:WindowsXP以上

C++でZIPファイルの解凍を行おうと色々調べてみましたが、挫折気味なのでご教示下さい。

まず、zlibによる解凍を行おうかと思い http://zlib.net/zlib_how.html この辺りを参考に途中まで実装しましたが、
ちょっと私にはハードルが高く、もっと簡単に行えるライブラリあるんじゃない?と思い
7zipのライブラリを使うと意外と簡単という記述を見つけ、7zip公式からlzma920をDLし、中にあったMakefileでコンパイルできるかとおもいきや
構文エラーが発生し、コンパイルできず。

というのが現状です。

圧縮は別ソフト(WinRAR等)で行うので解凍さえを行えればいいのですが、なにかいい手だては有りませんでしょうか?
DLLを同梱して動作する形が理想ですので、別途インストールしなければ動作しないというのは考えていません。
例えば、作成中の解凍ソフトで解凍するために、7Zipをインストールし、その際配置されるDLL等を使用する。という事です。

== 追記 ==
現在はCABでの解凍を行っている部分をZIPでの解凍に変更したいと思い、今回の質問に至っていますので
できればCABは使いたくありません。

あと、理想としてはUnZip(CString path, CString dest)という様なものがあればとてもうれしいです。
が、あくまで理想なので、zlibよりは簡便に使えればと思っています。
引用返信 編集キー/
■70124 / inTopicNo.2)  Re[1]: C++でZIPファイルの解凍
□投稿者/ tinq (10回)-(2014/02/25(Tue) 18:37:17)
No70123 (nobb さん) に返信
統合アーカイバがまさにそれかと思います。日本では有名どころのソフトにも数多く採用されています。
http://www.madobe.net/archiver/index.html
引用返信 編集キー/
■70131 / inTopicNo.3)  Re[1]: C++でZIPファイルの解凍
□投稿者/ 魔界の仮面弁士 (542回)-(2014/02/25(Tue) 20:03:18)
No70123 (nobb さん) に返信
> Visual Studio2013, C++(MFC, MBCS)
ということは、System.IO.Compression.ZipFile は使えないですね…。

> まず、zlibによる解凍を行おうかと思い
それ以外では、Info-ZIP でしょうか。実装難易度は別として。
http://miff.blog.so-net.ne.jp/2011-09-27-1
http://www.vector.co.jp/vpack/browse/person/an003906.html


> 圧縮は別ソフト(WinRAR等)で行うので解凍さえを行えればいいのですが、
WinRAR はコマンドライン指定に対応しているので、
x パラメータで起動するというのは如何でしょうか。
(他のソフトでも良いですけど)

アプリ依存度を減らしたいなら、 No70124 でも提案さえている
unzip32.dll を使うのが手っ取り早そうです。
DLL の導入は必要になりますけれども。

unzip32 すら使わない、という話になると、OS の ZIP フォルダ機能を使って
処理する方法がありますが、これは非推奨ということになっていますね。
http://support.microsoft.com/kb/2679832/ja
引用返信 編集キー/
■70137 / inTopicNo.4)  Re[2]: C++でZIPファイルの解凍
□投稿者/ nobb (8回)-(2014/02/26(Wed) 09:34:00)
No70124 (tinq さん) に返信
ご回答ありがとうございます。

> 統合アーカイバがまさにそれかと思います。日本では有名どころのソフトにも数多く採用されています。
> http://www.madobe.net/archiver/index.html

こちらは見ていたのですが、量が多すぎてどれが自分の希望にあったものか判断できずに閉じていました。。
引用返信 編集キー/
■70138 / inTopicNo.5)  Re[2]: C++でZIPファイルの解凍
□投稿者/ nobb (9回)-(2014/02/26(Wed) 09:38:43)
2014/02/26(Wed) 10:49:41 編集(投稿者)

No70131 (魔界の仮面弁士 さん) に返信
ご回答ありがとうございます。

>>Visual Studio2013, C++(MFC, MBCS)
> ということは、System.IO.Compression.ZipFile は使えないですね…。
そうなんです。それを使う為にC++/CLIでラップする・・・?とも一瞬考えたのですが、
どう考えても公開されているライブラリを使った方が早いので思い出さなかった事にしました。


> アプリ依存度を減らしたいなら、 No70124 でも提案さえている
> unzip32.dll を使うのが手っ取り早そうです。
> DLL の導入は必要になりますけれども。
unzip32.dllで実装しようと思います。


> unzip32 すら使わない、という話になると、OS の ZIP フォルダ機能を使って
> 処理する方法がありますが、これは非推奨ということになっていますね。
> http://support.microsoft.com/kb/2679832/ja
このAPIさえ公開(?)してくれていたらこんなに悩まなくてもよかったのに・・・
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -