KYO'S BLOG

<< September 2020 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
<< IIS の Windows 統合認証 (NTLM 認証) 2 | main | 【レーシック(近視回復)】給付金 >>

C#でZIP圧縮

0
    @ITに
    [ASP.NET]動的に圧縮ファイルを生成するには?
    という記事があがっている。VJのLibraryでZip圧縮するというもの。
    たぶん日本語ファイル名に対応できてないんじゃないかなぁ?と思う。

    このあたりは以前検証したので結果を載せておこう。
    すでに BLOG に載せたと思ったのだが、載せてなかった・・・


    1. J#.Net のライブラリを使用する。
     http://msdn.microsoft.com/msdnmag/issues/03/06/ZipCompression/default.aspx
     J# で用意されているクラスを使用する。
     Java では Zip 圧縮が提供されているので.Net では J# のみ用意されている様子。

     メリット  : .Net Framework 標準で準備されている。
     デメリット : 日本語ファイル名に対応できていない。.Net Framework 2.0 で対応されるような記述はある。


    2. SharpZipLib (オープンソース) を使用する。
     http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx
     上記 1 の Microsoft のドキュメント内で紹介されている圧縮機能の代替案。

     メリット  : オープンソースなので修正が可能。
     デメリット : 日本語ファイル名対応済み(?)。Microsoft が保障しているわけではない。
     検証結果  : 日本語ファイル名でも対応可能。


    3. unzip32.dll を使用する。
     http://www.csdinc.co.jp/archiver/lib/unzip32.html
     Win32 を使用した外部 dll を使用した方法。

     メリット  : C++ や VB などでは広く使われていると思われる(推測)。
            利用できる関数も多種用意されている。日本語対応されている。
     デメリット : Free のライブラリの信頼性評価が難しい。COM アクセスになる。
     検証結果  : ASP.NET から dll ライブラリを使用することは可能であることを確認。
            テストベースでは WEB から日本語ファイルでの圧縮解凍ができている。

    C# | permalink | comments(2) | trackbacks(0)

    この記事に対するコメント

    SharpZipLibこれってライセンスがGPLってところで導入を見送った経緯があるんですよねぇ。
    GPLライセンスを怖がって結局上がOKを出さなかったんですが、こいつ便利なんですよねぇ(^^)
    Ichikawa | 2005/10/07 9:24 AM
    そうなんですかぁ。
    結局圧縮はやらない方向で決まったので、ライセンスについてはノータッチでしたね。
    本当は最初に調べなくちゃいけないのかもしれないんですけどw
    確かに ASP.NET で開発するには、SharpZipLib が一番良さそうでした!
    KYO | 2005/10/07 10:40 AM
    コメントする









    この記事のトラックバックURL
    トラックバック機能は終了しました。
    この記事に対するトラックバック