.NET의 ZIP 및 UnZIP 폴더
Contents
[
Hide
Show
]Aspose.ZIP API를 사용하면 기본 파일 구조에 대해 걱정하지 않고 파일을 압축하고 압축을 풀 수 있습니다. 이 문서에서는 단일 및 다중 파일 압축 작업을 보여줍니다.
압축 디렉터리
디렉터리 내용 압축
단계: C#을 사용하여 디렉터리 콘텐츠를 ZIP 파일로 압축
- 압축할 파일이 포함된 디렉터리를 정의합니다.
- FileMode.Create를 사용하여 출력 ZIP 파일에 대한 두 개의 파일 스트림을 엽니다.
- Archive 클래스의 인스턴스를 생성합니다.
- CreateEntries 메서드를 사용하여 지정된 디렉터리의 모든 파일과 폴더를 아카이브에 추가합니다.
- Save 메서드를 사용하여 압축된 디렉터리 내용을 여러 ZIP 파일로 저장합니다.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 string dataDir = RunExamples.GetDataDir_Data();
3
4 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Create))
5 {
6 using (FileStream zipFile2 = File.Open(dataDir + "CompressDirectory2_out.zip", FileMode.Create))
7 {
8 using (Archive archive = new Archive())
9 {
10 DirectoryInfo corpus = new DirectoryInfo(dataDir + "CanterburyCorpus");
11 archive.CreateEntries(corpus);
12 archive.Save(zipFile);
13 archive.Save(zipFile2);
14 }
15 }
16 }
압축된 디렉터리 아카이브 추출 중
- FileMode.Open을 사용하여 ZIP 파일 스트림을 엽니다.
- ZIP 파일 스트림을 전달하여 Archive 클래스의 인스턴스를 생성합니다.
- ExtractToDirectory를 사용하여 압축된 아카이브의 내용을 지정된 디렉터리로 추출합니다.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Open))
3 {
4 using (var archive = new Archive(zipFile))
5 {
6 archive.ExtractToDirectory(dataDir + "DecompressFolder_out");
7 }
8 }
파일 정보로 파일 압축
- FileMode.Create를 사용하여 출력 ZIP 파일에 대한 파일 스트림을 엽니다.
- 압축하려는 파일에 대한 FileInfo 개체를 만듭니다.
- Archive 클래스의 인스턴스를 생성합니다.
- CreateEntry 메소드를 사용하여 각 파일을 아카이브에 추가합니다.
- 인코딩 설정과 같은 선택적 저장 옵션과 함께 Save 메서드를 사용하여 아카이브를 저장합니다.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressFilesByFileInfo_out.zip", FileMode.Create))
3 {
4 FileInfo fi1 = new FileInfo(dataDir + "alice29.txt");
5 FileInfo fi2 = new FileInfo(dataDir + "fields.c");
6
7 using (var archive = new Archive())
8 {
9 archive.CreateEntry("alice29.txt", fi1);
10 archive.CreateEntry("fields.c", fi2);
11 archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
12 }
13 }
다른 항목 아카이브가 있는 아카이브 추출
- FileMode.Open을 사용하여 ZIP 파일 스트림을 엽니다.
- ZIP 파일 스트림을 전달하여 Archive 클래스의 인스턴스를 생성합니다.
- Extract 메소드를 사용하여 해당 항목에 대한 특정 비밀번호를 제공하고 아카이브에서 첫 번째 항목을 추출합니다.
- 다른 비밀번호로 두 번째 항목을 추출하여 별도의 출력 파일에 저장합니다.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "\\different_password.zip", FileMode.Open))
3 {
4 using (Archive archive = new Archive(zipFile))
5 {
6 archive.Entries[0].Extract(dataDir + "alice29_extracted_pass_out.txt", "first_pass");
7 archive.Entries[1].Extract(dataDir + "asyoulik_extracted_pass_out.txt", "second_pass");
8 }
9 }