■ ZipArchive 클래스를 사용해 ZIP 파일을 생성하고 추출하는 방법을 보여준다.
▶ ZipArchive 클래스 : ZIP 파일 생성하기/추출하기 예제 (C#)
1 2 3 4 |
CreateZIPFile("d:\\source", "d:\\test.zip"); ExtractZIPFile("d:\\test.zip", "d:\\target"); |
▶ ZipArchive 클래스 : ZIP 파일 생성하기/추출하기 (C#)
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
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