Zip 파일 압축풀기
ICSharpCode.SharpZipLib dll을 사용하여 Zip 파일을 압축해제 하였다.
/// <summary>
/// 압축을 해제합니다.
/// </summary>
/// <param name="filename">파일 이름입니다.</param>
/// <param name="destination">압축 풀 위치입니다.</param>
static void DeCompression(string filename, string destination) {
string zipPath = filename;
FileStream fs = new FileStream(zipPath, FileMode.Open, FileAccess.Read, FileShare.Read);
ZipInputStream zis = new ZipInputStream(fs);
ZipEntry ze;
while ((ze = zis.GetNextEntry()) != null) {
if (!ze.IsDirectory) {
string fileName = Path.GetFileName(ze.Name);
string destDir = Path.Combine(destination, Path.GetDirectoryName(ze.Name));
if (false == Directory.Exists(destDir)) {
Directory.CreateDirectory(destDir);
}
string destPath = Path.Combine(destDir, fileName);
FileStream writer = new FileStream(destPath, FileMode.Create, FileAccess.Write, FileShare.Write);
byte[] buffer = new byte[2048];
int len;
while ((len = zis.Read(buffer, 0, buffer.Length)) > 0) {
writer.Write(buffer, 0, len);
}
writer.Close();
}
}
zis.Close();
fs.Close();
}