vb.net(VB2008)で、ファイルを無圧縮モードでzipにアーカイブするコードについて。(dllを使用しない直接バイナリを叩く方法)

この度は。


前回に、紹介させて頂きました。
http://oyk3865b.blog13.fc2.com/blog-entry-2167.html


無圧縮zipファイル内部の構造を踏まえまして、

VB.net(VB2008 / VB2015)にて、
外部dllを使用しないで、直接バイナリを叩く方法で
任意のファイルを、zipにアーカイブするコード

記述させて頂いたので、公開させていただきたいと思います。


長ったるいコードではございますが、
よろしくお願いいたします。


今回のコードには私の思い違いなど、
不適切な部分が、多分に含まれますので、
適時、修正していただけると幸いでございます。


圧縮せず、そのままzipにアーカイブする方法ですが、
アーカイブする内容のファイルが、
jpegや、mp3、mp4など、すでに圧縮を受けているファイルならば
十分に実用的であると、私自身で考えております。

このコードの作成に関しまして、

◆『The structure of a PKZip file』
https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html


◆『APPNOTE.TXT - .ZIP File Format Specification』
https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT


◆『ZIP書庫ファイル フォーマット』
http://www.tvg.ne.jp/menyukko/cauldron/dtzipformat.html


◆『vb.net - Calculate CRC32 of an String or Byte Array - Stack Overflow』
http://stackoverflow.com/questions/15553697/calculate-crc32-of-an-string-or-byte-array


以上のサイト様の情報を、参考・引用させていただきました。
そちらも併せて、ご覧頂けると幸いでございます。



以下のコードは、
VB2008や、VB2015において、
直接、「新規Windowsフォームアプリケーション」でのFormに、
そのまま、貼り付けるだけで、
動作するようにしてありますが。
snapshot002939043 - コピー

あくまで、公開用に必要部分だけに留め
端折ったコードですので、

不十分な部分が多々ございますので、
遂次、ご自身で、修正いただけると幸いです。









以上 大変手抜きで、大まかで不十分かつ、長ったるいコードですが。
何かのお役に立てれば、幸いでございます。

また、
crc32Table変数を、ファイルごとに、初期化していますが
本来は、初回の1回のみ行えばよいものでございます。

しかし、今回は、私の個人的な要請で
CRC-32の算出方法の明確化をしたいため、
まどろっこしくも、ファイルごとに初期化するコードとさせていただきました。
もし、実装される場合は、適当にコードを分割のほど
よろしくお願い申し上げます。

ありがとうございました。


次回は、同じ内容を、Excel付属のVBAで記述した、
無圧縮zipアーカイブ作成のコードを、公開したいと思います。
http://oyk3865b.blog13.fc2.com/blog-entry-2169.html


Excel付属のVBAでCRC-32を記述するところで躓いてしまいました。
まあ、強引に何とかなりましたが・・・・orz

同じ内容ばかりが続いて、すみません。


スポンサーサイト

テーマ : プログラミング - ジャンル : コンピュータ

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

プロフィール





最新記事
最新コメント
最新トラックバック



月別アーカイブ
カテゴリ