• 締切済み

ZIPを操作したい(VB.NET、dll)

現在VB6で、UNLHA32.dllを使用して ・LZHの圧縮 ・LZHの解凍 ・LZH内のテキストファイルの読み込み の操作をしています。 今回、VB6からVB.NETへ言語を変換することになりました。 そのタイミングで、LZHではなくZIPを使うことにもなりました。 (LZHはセキュリティ的に使うべきでないからという理由だと思います。) そこでLZHで行っていた操作を、ZIPに置き換えて実現するにはどうすればよいでしょうか? VB.NETの機能でZIP操作できるようなのですが、FrameWork4.5以上からのようなので、バージョンで操作できる・できないが出てしまうならdllを使うべきなのかなと思っています。 dllで調べていくと、UNZIP32.dllやzip32.dll、zip32j.dllなどがあることを知りました。 UNLHA32.dllではそれ1つで解凍や圧縮ができたのですが、 UNZIP32.dllでは解凍のみ、zip32.dllやzip32j.dllは圧縮のみのようです。 ただ、本文の最初に挙げていた、 圧縮状態のまま、その中にあるテキストファイルの読み込み がどうすれば実現できるのかが調べていても分かりませんでした。 また、先ほど挙げたZIP操作のdllをVB.NETで使用していくにあたっての コーディングなどについてもなかなか検索しても見つからず、 どうすればいいのか見えてこない状態です。 (私の検索方法が良くないのかもしれませんが・・・) それ以外にもzip32.dllとzip32j.dllの両方を組み合わせて使うようなのですが、 その理由も分からないです。 助言をいただけないでしょうか。 p.s. 入社したてのスキル不足なSEです。 初歩的な質問だったらすみません。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.1

>圧縮状態のまま、その中にあるテキストファイルの読み込み がどうすれば実現できるのかが調べていても分かりませんでした。 解凍先をメモリなどにして解凍します。 >それ以外にもzip32.dllとzip32j.dllの両方を組み合わせて使うようなのですが、 >その理由も分からないです。 zip32j.dllは、zip32.dllを統合アーカイバプロジェクトAPI風に使えるようにするためのラップライブラリですので必ずしも使用する必要はありません。

関連するQ&A

  • VB.NETでUnzip32.DLLを使うには?

    VB2005または2008でUnzip32を使ってzipファイルを解凍する方法を教えてください。 Unzip32のバージョンは5.42、OSはXP32bitSP3です。 UnZipGetVersionではきちんとバージョンが返ってきますので、DLL自体には問題はないと思います。 Classの下に Public Declare Function UnZip Lib "unzip32.dll" (ByVal hwnd As Long, ByVal szCmdLine As String, ByVal szOutput As String, ByVal dwSize As Long) As Long を記述し、 UnZip(0, "-o C:\01.zip E:\", vbNull, 0) と命令してもコンパイラエラーになってしまいます。 第二引数のC:\01.zipはちゃんと存在するファイルであることを一応書き添えておきます。 引数の記述がおかしいと思うのですが、Unzip32のドキュメントを読んでも解決できません。 一日中ぐぐってもVB2005以降での構文サンプルも見つかりませんでした。 UnzioExtractでも引数の説明が意味不明で解凍できませんでした。 できましたら第一から第四までの引数になにを入れたらいいのか、 具体的に指示していけたらありがたいです。 よろしくお願いします。

  • ZIP圧縮やLHA圧縮されたファイルをプラグインにしたい

    ZIP型式やLHA型式で圧縮されたファイルをUNZIP32.DLLやUNLHA32.DLLで、プログラムのプラグインとしてつかう為には、どんな関数を使えば良いのでしょうか? 宜しければご教授ください。

  • zip形式の圧縮だけできない

    数多くの圧縮・解凍できるフリーソフトがありますが、 先日XPに変えてからそれらのソフトでzip形式のものだけ圧縮できなくなってしまいました。 そのフリーソフトがXPに対応してないものもありましたが、lhaやcab形式などは問題なく圧縮できました。 Lacha、Lhaplusというソフトの場合だけzip形式の圧縮が可能でした。 zipの圧縮ができないとされるソフトが使用しているDLLはsystem32フォルダに入っています。 「UNZIP32.DLL」「IZIP32J.DLL」「ZIP32J.DLL」といったものを入れています。 参考までにzip圧縮ができなかったソフトを挙げます。 「LHUT32」「ONEPACALL2」「連続圧縮」「連続あっしゅ君」 これらは外部DLLを使用するようなのでそれが関係してるのかと自分は考えたのですが。 あとは複数ファイルを個別に圧縮する機能を持っているという特徴ぐらいでしょうか。 何かおわかりでしたら、よろしくお願いします。

  • VB.Net で Zlib.dll  但し ExpressEdition

    はじめまして。 VB.Net Express Edition でプログラム開発中です。 必要上 Zlib.dll でZipファイルの圧縮/解凍をする必要が発生しました。 Webを調査して、参考となる技術情報は見つける事ができたのですが、 肝心の Zlib.dllの参照設定方法がわかりません。 参照/追加 で表示されるライブラリの一覧にZlibらしきものが見当たりません。(.Net , Com共に) 私の技術・知識が未熟な事もあるのですが、そもそもExpress Edition故の制限なんてこともあるのでしょうか? もしお時間ありましたら、アドバイス願います。 【補足】 ちなみに、今回はかくかくしかじかの理由でZlib.dllで開発するしか道がありません。 他の方法でZipファイル操作実現可能なのは存じております。

  • Window(XP,2003等)標準機能の「ZIP圧縮・展開」をVBに

    Window(XP,2003等)標準機能の「ZIP圧縮・展開」をVBに組み込めますでしょうか? VBで、圧縮ファイルを展開する、ということをしたいのですが、 ネット上に沢山サンプルがある「外部DLL(unzip32.dllなど)を使用する」という方法は、 使用条件によっては外部DLLのライセンスの問題が絡んでくるようですので、 Windowsの標準機能を組み込めないか?と考えたところです。 Windowsの標準機能、と記載しましたが、  ・ファイルを右クリック→送る→圧縮(zip形式)フォルダ  ・ファイルを右クリック→送る→すべて展開 のことを指しました。 ご指導よろしくお願いいたします。

  • 解凍で出てきたzip32.dll以外のファイル

    zip32.dllのファイルzip232dN.zipを http://www.csdinc.co.jp/archiver/lib/zip32j.html からダウンロードし解凍したところ、たくさんのファイルが出てきまました。 (1) zip32.dll以外のこれらのたくさんのファイルは、zip32.dllの作動に必要なのでしょうか。 (2) zip32.dll以外のこれらのたくさんのファイルは、zip232dN.zipを解凍したフォルダに置いておかないとzip32.dllは作動しないのでしょうか。

  • ZIPファイルが解凍できなくなりました

     パソコン素人ですので宜しくお願いいたします。  先日、LZHファイルを解凍するためにLHACA バージョン0.72をダウンロードしました。そこで、LZHファイルは解凍できましたが、その後ZIPファイルが解凍できなくなってしまいました。LZHファイル解凍前は、ZIPファイルは解凍できました。  関連付けはLZH・ZIPは両方とも行っております。  素人の自分がたぶん変な操作を行ってしまったものと思いますので、戻す方法もお伺いいただければ幸いです。  また、新たにZIP解凍を行うための方法もお願いいたします。  OSはWindowsMEです。  

  • lzh形式の解凍について・・・

    lzh形式の圧縮ファイルを解凍するため、 「Unlha32.dll」というやつをインストールしたのですが、 lzh形式のファイルを解凍すると 「CRC エラーが発生しました」とか「格納ファイルのハフマンコードが壊れています」と出て,解凍できません。 だれか助けてください。 OSは98です。

  • VB2005ExpressEditionでのUnlha32.dllのエラーコードの出し方

    現在VB2005ExpressEditionでUnlha32.dllを使ってファイルの解凍をしようとしています しかし、失敗するのでエラーコードを出させるようにしてみました でも、出てきたのはどうやらエラーコードとは違うもののようなのです Unlha32.dllのエラーコードの出し方が間違っているようなのでエラーコードの出し方を教えてください ソースです↓(半角スペースは全角スペースにしてあります) Public Class Form1   Private Declare Function Unlha Lib "Unlha32.dll" (ByVal CmdLine As String) As Long   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     MsgBox(Unlha("e C:\test.lzh -x1a1 -c C:\ *.*"))   End Sub End Class

  • unzip32.dllの利用について(64bit)

    unzip32.dllをプログラムから呼び出しZIPファイルを解凍していたのですが、 64bitOSになった場合は、どうすればよいのでしょうか? unzip32.dllの64ビット版はあるのでしょうか? テストで使用しているWindows7(x64)では、動作しているのですが、 ちょっと不安になり質問しました。 よろしくお願いします。

専門家に質問してみよう