DotNetZipで日本語を扱う
DotNetZipはver1.6を利用。
以下がzipファイル内のファイル一覧を表示するルーチン。
zipファイルの中を閲覧、展開するときのRead()に必ずPagecodeを指定することがポイント。1行目のようにEncodingで932を指定してあげればSJISで保存されている場合でもちゃんと表示される。
using (ZipFile zip = ZipFile.Read(szZipPath, System.Text.Encoding.GetEncoding(932)))
{
//Zipファイル名を表示
string s;
s = string.Format("Filename : {0}", zip.Name);
Debug.WriteLine(s);//zip内部のファイル数を表示
s = string.Format("Entries : {0:#,0}", zip.Count);
Debug.WriteLine(s);//ファイル名のみ表示
ReadOnlyCollection<string> roc = zip.EntryFileNames;
foreach (string sz in roc)
{
s = string.Format("zip in Filename : {0}", sz);
Debug.WriteLine(s);
}
}
ソースコードは置いておくので参考にしてください。
| 固定リンク

コメント