728x90
반응형
728x170
▶ ZipArchive 클래스 : ZIP 파일 생성하기/추출하기 예제
CreateZIPFile("d:\\source", "d:\\test.zip");
ExtractZIPFile("d:\\test.zip", "d:\\target");
728x90
▶ ZipArchive 클래스 : ZIP 파일 생성하기/추출하기
using System.IO;
using System.IO.Compression;
#region ZIP 파일 생성하기 - CreateZIPFile(backupFolder, zipFilePath)
/// <summary>
/// ZIP 파일 생성하기
/// </summary>
/// <param name="backupFolder">백업 폴더</param>
/// <param name="zipFilePath">ZIP 파일 경로</param>
public void CreateZIPFile(string backupFolder, string zipFilePath)
{
using(FileStream fileStream = new FileStream(zipFilePath, FileMode.Create, FileAccess.ReadWrite))
{
using(ZipArchive zipArchive = new ZipArchive(fileStream, ZipArchiveMode.Create))
{
foreach(string filePath in Directory.EnumerateFiles(backupFolder, "*.*", SearchOption.AllDirectories))
{
string relativePath = filePath.Substring(backupFolder.Length + 1);
try
{
zipArchive.CreateEntryFromFile(filePath, relativePath);
}
catch(PathTooLongException)
{
}
}
}
}
}
#endregion
#region ZIP 파일 추출하기 - ExtractZIPFile(backupFolderPath, zipFilePath)
/// <summary>
/// ZIP 파일 추출하기
/// </summary>
/// <param name="zipFilePath">ZIP 파일 경로</param>
/// <param name="backupFolder">백업 폴더</param>
public void ExtractZIPFile(string zipFilePath, string backupFolder)
{
using(ZipArchive zipArchive = ZipFile.OpenRead(zipFilePath))
{
foreach(ZipArchiveEntry zipArchiveEntry in zipArchive.Entries)
{
try
{
string folderPath = Path.GetDirectoryName(Path.Combine(backupFolder, zipArchiveEntry.FullName));
if(!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
zipArchiveEntry.ExtractToFile(Path.Combine(backupFolder, zipArchiveEntry.FullName));
}
catch(PathTooLongException)
{
}
}
}
}
#endregion
※ 아래 닷넷 어셈블리를 참조한다.
- System.IO.Compression
- System.IO.Compression.FileSystem
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 다각형 무게 중심 구하기 (0) | 2017.06.11 |
---|---|
[C#/COMMON] 다각형 면적 구하기 (0) | 2017.06.11 |
[C#/COMMON] 파비콘 다운로드 하기 (0) | 2017.06.10 |
[C#/COMMON] 엣지 브라우저 버전 구하기 (0) | 2017.06.10 |
[C#/COMMON] 운영 체제 버전 구하기 (0) | 2017.06.10 |
[C#/COMMON] 디렉토리 삭제하기 (0) | 2017.06.10 |
[C#/COMMON] 엣지 브라우저 실행 여부 구하기 (0) | 2017.06.10 |
[C#/COMMON] 엣지 브라우저 캐시 이미지 추출하기 (0) | 2017.06.04 |
[C#/COMMON] 엣지 브라우저 즐겨찾기 관리하기 (0) | 2017.06.01 |
[C#/COMMON] 이용 가능한 포트 구하기 (0) | 2017.05.31 |
댓글을 달아 주세요