vb.netで圧縮、解凍するには?


マッグ  2004-07-09 22:26:02  No: 114680

vb.netを使用しているのですがツールを使わずにプログラムコードで圧縮、解凍するにはどうしたらよいか教えてください。


Say  2004-07-10 10:37:59  No: 114681

圧縮アルゴリズムの勉強をすればいいのでは?
ハフマンなりスライド辞書なりRLEなり、
自分で調べて気に入ったものを使えばいいのでは?
勿論、真似するのがいやなら、アルゴリズムそのものを
自己開発するのもアリかと。

非可逆でいいなら、再帰曲線で画像圧縮なんか
個人的に好きなネタですが。
うまくいけば、死ぬほど小さくなります。


魔界の仮面弁士  2004-07-10 20:04:47  No: 114682

.NET Frameworkで、圧縮/展開をするなら、
J#のZipOutputStream/ZipInputStream/ZipEntryクラスが使えます。


マッグ  2004-07-13 17:34:00  No: 114683

J#のZipOutputStream/ZipInputStream/ZipEntryクラスで作成したのですが、圧縮対象のファイルの更新日時が取得できませんでした。setTimeを使ってもうまくいかなかったです。何かいい方法ないですか?


すー  2004-07-15 07:29:18  No: 114684

マッグさん。
同じような質問をしていたすーといいます。
そこで解決できたので。

①まず、zip32j.dllとzip32.dllをどこかから落としてくる。
  Vectorとか
②上記dllをexeと同じディレクトリ、もしくは環境変数のPathが通ってるところ(通常はsystem32以下かな)に置く。

==============================
Public Declare Function Zip Lib "Zip32j" _
              (ByVal hWnd As Integer,_
              ByVal szCmdLine As String,_
              ByVal szOutPut As String,_
              ByVal dwsize As Integer) As Integer
==============================
を宣言

あとは、zip()を呼び出すだけです。
ちなみに圧縮だけなら、コマンドライン引数(szCmdLine)につけるオプションは "-r" だけでよいかと。

宣言して使用できる関数については、
http://www.geocities.co.jp/SiliconValley-SanJose/1892/pc/archive.html
で、簡単にわかるようになっています。


マッグ  2004-08-05 17:29:56  No: 114685

すいません。かなり返事遅くなりました。みなさん解答ありがとうございます。みなさんの意見を参考にがんばってやってみたいと思います。また困ったときはよろしくお願いします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加