none
VB.NET(2005)でZIPファイルを解凍及び圧縮をしたい… RRS feed

  • 質問

  •  VB.NET(2005)でZIPファイルを解凍及び圧縮をしたいと考えています。

    .NET標準の関数が無ければ、外部DLLを使用せずにWIN32APIを使用したいと考えています。
    .NET標準のクラスだと、方法が見つからないんですよね。

    どなたか名前空間・クラスやサンプル等をご存知の方はいらっしゃいませんか?

    ご教授願います。よろしくお願いいたします。

    2009年2月9日 2:32

回答

すべての返信

  •  
    .NET Framework 2.0にはZIP関連のクラスはなかったはずです(以前はJ#のクラスにありましたが)。
    OSの機能を使うにしてもAPIは公開されていなかったような(未確認)。

    一応、ご参考まで。

    http://blogs.wankuma.com/hatsune/
    2009年2月9日 3:34
  • 下記の様な方法も

    DOBON.NET
        ZIP書庫の作成(圧縮)、展開(解凍)、閲覧を行う
        http://dobon.net/vb/dotnet/links/createzipfile.html

    # 因みにGZIP形式なら
    MSDN
        GZipStream クラス

    • 回答としてマーク endo 2009年2月10日 4:07
    2009年2月9日 3:54
  • とてもお勧めできない方法ですが…
    .NET Framework 3.0で追加されるWindowsBase.dllにはZipPackageクラスがあります。
    これ自体は、Office 2007で導入された.docxや.xlsx形式にアクセスできるクラスです。
    名前の通り内部ではZIPが使われています。
    具体的にはZIPファイルの読み書きにはMS.Internal.IO.Zip.ZipArchiveクラスで実装されています。
    ただしこれは非公開クラスなので…。
    手元の環境で試してみたところ、日本語ファイル名が文字化けしてくれました。

    J#もいつまで続くやら&追加でランタイムライブラリをインストールする必要があると思いますし…。
    初音玲さんの書かれているExplorerの機能を使うのが妥当でしょうか。
    このZIPフォルダ(zipfldr.dll)はTLBがないので、C#からの直接呼び出しもできず、
    リンク先にあるようにExplorer経由しか…。
    2009年2月9日 8:32
  • karashima様が紹介していらっしゃる
    DOBON.NET の方法の1つで
    J#のランタイムを使用して圧縮/解凍DLL を作成したことがあるのですが
    非常にわかりやすく、容易に作成できました。

    参照設定でvsjlib.dllを追加して、多少のエラー処理を追加すれば良いだけなので
    ぜひ参考にしてみると良いと思います。

    2009年2月13日 13:51