7z 아카이브 작업
개요
7-Zip은 압축률이 높은 파일 아카이버입니다. Aspose.ZIP API를 사용하면 다른 타사 애플리케이션 없이도 애플리케이션에서 7-Zip 아카이브를 생성하고 관리할 수 있습니다. Aspose.ZIP API는 7-Zip 아카이브 작업을 위한 SevenZipArchive 클래스를 제공합니다. 이 클래스는 아카이브에 대한 작업을 수행하는 다양한 방법을 제공합니다. API는 7z 아카이브 내의 단일 파일을 나타내기 위해 SevenZipArchiveEntry 클래스를 제공합니다.
7-Zip 단일 항목 생성
다음 코드 예제에서는 SevenZipArchive 인스턴스를 사용하여 7-Zip 항목을 생성하는 방법을 보여줍니다.
1 using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
2 {
3 using (var archive = new SevenZipArchive())
4 {
5 archive.CreateEntry("data.bin", "file.dat");
6 archive.Save(sevenZipFile);
7 }
8 }
7-Zip 아카이브 항목 생성
SevenZipArchive 클래스는 지정된 디렉터리에 파일과 디렉터리를 반복적으로 추가하는 CreateEntries 메서드를 제공합니다. 다음 코드 예제에서는 7-Zip 아카이브 항목을 생성하는 방법을 보여줍니다.
1 using (SevenZipArchive archive = new SevenZipArchive())
2 {
3 archive.CreateEntries(dataDir);
4 archive.Save("SevenZip.7z");
5 }
7-Zip 암호화 설정
Aspose.ZIP API는 7z 아카이브에 대한 AES 암호화 또는 복호화 설정을 제공하는 SevenZipAESEncryptionSettings 클래스를 제공합니다. 다음 코드 예제에서는 AES 암호화 설정을 제공하는 방법을 보여줍니다.
1 using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
2 {
3 archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
4 archive.Save("archive.7z");
5 }
AES-256은 7z 아카이브에 사용할 수 있는 유일한 암호화 방법입니다.
LZMA 압축을 사용한 7-Zip 아카이브
다음 코드 예제는 LZMA 압축 및 AES 암호화를 사용하여 7z 아카이브를 생성하는 방법을 보여줍니다.
단계: 만들기 C#을 통한 LZMA 압축 및 AES 암호화 기능을 갖춘 7z 아카이브
- FileMode.Create를 사용하여 출력 7z 아카이브에 대한 파일 스트림을 엽니다.
- SevenZipArchive 클래스의 인스턴스를 생성합니다.
- CreateEntry 메소드를 사용하여 다음을 지정하여 아카이브에 항목을 추가합니다.
- 압축할 파일입니다.
- SevenZipLZMACompressionSettings를 사용한 LZMA 압축 설정.
- SevenZipAESEncryptionSettings(비밀번호 포함)를 사용한 AES 암호화 설정.
- 압축 및 암호화된 데이터를 파일에 기록하려면 Save 메서드를 사용하여 아카이브를 저장합니다.
1 using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
2 {
3 using (var archive = new SevenZipArchive())
4 {
5 archive.CreateEntry("entry1.bin",
6 new MemoryStream(new byte[] { 0x00, 0xFF }),
7 new SevenZipEntrySettings(new SevenZipLZMACompressionSettings(),
8 new SevenZipAESEncryptionSettings("test1")),
9 new FileInfo("data1.bin"));
10 archive.Save(sevenZipFile);
11 }
12 }
마찬가지로 BZip2, PPMd 및 LZMA2 압축 방법으로 7z 아카이브를 구성하거나 압축하지 않고 파일을 저장할 수 있습니다.
항목에 대해 다른 비밀번호 설정
다음 코드 예제는 각 항목에 대해 서로 다른 비밀번호로 암호화된 항목이 포함된 아카이브를 생성하는 방법을 보여줍니다.
단계: 만들기 C#을 통한 LZMA 압축 및 AES 암호화 기능을 갖춘 7z 아카이브
- FileMode.Create를 사용하여 파일 스트림을 열어 7z 아카이브를 생성합니다.
- 아카이브에 항목으로 추가하려는 파일(FileInfo 개체)을 준비합니다.
- SevenZipArchive 클래스의 인스턴스를 생성합니다.
- 각 항목에 대해 CreateEntry 메서드를 사용하여 파일을 아카이브에 추가합니다.
- 압축 방법을 지정합니다(이 경우 SevenZipStoreCompressionSettings).
- SevenZipAESEncryptionSettings를 사용하여 각 항목에 대해 다른 비밀번호를 설정하십시오.
- 암호화된 항목을 파일에 기록하려면 Save 메서드를 사용하여 아카이브를 저장합니다.
1 using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
2 {
3 FileInfo fi1 = new FileInfo("data1.bin");
4 FileInfo fi2 = new FileInfo("data2.bin");
5 FileInfo fi3 = new FileInfo("data3.bin");
6 using (var archive = new SevenZipArchive())
7 {
8 archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
9 archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
10 archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
11 archive.Save(sevenZipFile);
12 }
13 }
7z 아카이브 추출
Now Aspose.ZIP can extract LZMA, LZMA2, BZip2 and PPMd compressed archives.
다음 코드 예제는 7z 아카이브를 디렉터리로 추출하는 방법을 보여줍니다.
1 using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
2 {
3 archive.ExtractToDirectory("ExtractionFolder");
4 }