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 아카이브

  1. FileMode.Create를 사용하여 출력 7z 아카이브에 대한 파일 스트림을 엽니다.
  2. SevenZipArchive 클래스의 인스턴스를 생성합니다.
  3. CreateEntry 메소드를 사용하여 다음을 지정하여 아카이브에 항목을 추가합니다.
    • 압축할 파일입니다.
    • SevenZipLZMACompressionSettings를 사용한 LZMA 압축 설정.
    • SevenZipAESEncryptionSettings(비밀번호 포함)를 사용한 AES 암호화 설정.
  4. 압축 및 암호화된 데이터를 파일에 기록하려면 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 아카이브

  1. FileMode.Create를 사용하여 파일 스트림을 열어 7z 아카이브를 생성합니다.
  2. 아카이브에 항목으로 추가하려는 파일(FileInfo 개체)을 준비합니다.
  3. SevenZipArchive 클래스의 인스턴스를 생성합니다.
  4. 각 항목에 대해 CreateEntry 메서드를 사용하여 파일을 아카이브에 추가합니다.
    • 압축 방법을 지정합니다(이 경우 SevenZipStoreCompressionSettings).
    • SevenZipAESEncryptionSettings를 사용하여 각 항목에 대해 다른 비밀번호를 설정하십시오.
  5. 암호화된 항목을 파일에 기록하려면 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    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.