STAP STAP

STAP = (動詞)スタップする、カシャカシャする(造語)
 

スポンサーサイト 

No. : --/--/--(--) --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C# で Zip を扱ってみる [ DotNetZip ] 

No.324 : 2009/01/19(Mon) 20:40:44
修羅場ってるときこそ更新したくなるのは理不尽。
転送するファイルをアーカイブするのに、アーカイブ方法として ZIP を選んだんですが、
C# だといまいち ZIP は扱いづらいみたいです。
J# のライブラリや SharpZipLib を使う方法があるみたいですが、どちらもバグが多いらしい。
ってことで使ってみました DotNetZip

使い方
1)右側にある Download をクリック
2)DevKit をダウンロード(インテリセンス用のXMLファイルとかヘルプが入ってる)
3)Ionic.Utils.Zip.dll を参照に追加(XMLファイルなどは自動で読み込まれます)
4)コードをおもむろに書き始める。

using System;
using System.Text;
using System.IO;
using Ionic.Utils.Zip;

string dirPath = "D:\\Test";
string savePath = dirPath + ".zip";

// D:\Test (ディレクトリ)を圧縮
using(ZipFile zip = new ZipFile(savePath))
{
zip.ForceNoCompression = true;
zip.Encoding = Encoding.GetEncoding("shift-jis");
zip.AddDirectory(dirPath);
zip.Save();
}

// 展開用のディレクトリを作成
Directory.CreateDirectory("D:\\ExtractTest");

// D:\Test.zip を展開
using (ZipFile zip = ZipFile.Read(savePath, Encoding.GetEncoding("shift-jis")))
{
foreach (ZipEntry e in zip)
{
e.Extract("D:\\ExtractTest");
}
}


使い方はこんな感じ。非常に簡単。
Encoding は Shift-JIS にしておかないとファイル名に日本語が含まれる場合に文字化けするようです。
当たり前ですが、ファイル名に日本語が含まれて居なければ、ファイルの中身に日本語を含んでいても大丈夫です。

ところで、圧縮率の設定を探してみたけどよくわかりませんでした。もしかして設定できない?
スポンサーサイト
今の状態 | HOME | 接続相手のIPアドレスとポート番号を取得する

COMMENT

承認待ちコメント
このコメントは管理者の承認待ちです
2010/08/03(火) 16:33:05 | | # [Edit]

COMMENT FORM


TO SECRET
 

TRACKBACK URL to this Entry

TRACKBACK to this Entry

| HOME |

calendar

S M T W T F S
- - - - - 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
08« 2017/09 »10

Profile

エイチム

Author:エイチム
programmingに
興味を示す高専生

Diary

Recent Comments

Archives

Category

Link

このブログをリンクに追加する

RSS


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。