C#에서 7Zip 아카이브 만들기

이전 게시물에서 C#을 사용하여 ZIP 아카이브를 만드는 다양한 방법에 대해 논의했습니다. 이 기사에서는 암호화되고 암호로 보호된 ZIP 아카이브를 만드는 방법도 다루었습니다. ZIP 형식 외에도 7z, tar, RAR 등과 같이 일반적으로 사용되는 아카이브 형식이 있습니다. 이 중 7z 아카이브 형식은 오픈 소스 아키텍처를 기반으로 합니다. 압축률이 높은 파일 및 폴더를 압축하는 데 사용됩니다. 또한 256비트 AES 암호화를 지원하며 파일 이름도 암호화할 수 있습니다. 이 기사에서는 C#을 사용하여 프로그래밍 방식으로 7z(7-Zip) 아카이브를 만드는 방법을 보여줍니다.

이 문서는 다음 섹션으로 나뉩니다.

이 기사의 모든 단계와 코드 샘플은 Aspose.ZIP for .NET을 기반으로 합니다. 따라서 다음 방법 중 하나를 사용하여 API를 설치했는지 확인하십시오.

C#을 사용하여 7z(7-Zip) 아카이브 만들기

파일을 7z 아카이브로 압축하는 두 가지 시나리오가 있을 수 있습니다. 파일이 하나뿐이거나 압축할 파일이 많을 수 있습니다. 두 시나리오를 모두 명시적으로 처리할 수 있습니다.

단일 항목으로 7z 아카이브 생성

다음은 단일 항목으로 7z 아카이브를 만드는 단계입니다.

다음 코드 샘플은 C#을 사용하여 7z(7-Zip) 아카이브를 만드는 방법을 보여줍니다.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

여러 항목으로 7z 아카이브 만들기

이 경우 파일을 폴더에 넣고 폴더의 경로를 SevenZipArchive.CreateEntries() 메서드에 전달할 수 있습니다. 다음은 7z 아카이브에 여러 파일 항목을 추가하는 단계입니다.

다음 코드 샘플은 C#을 사용하여 여러 항목이 있는 7z 아카이브를 만드는 방법을 보여줍니다.

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntries(dataDir);
    archive.Save("SevenZip.7z");
}

C#을 사용하여 AES 암호화된 7z 아카이브 만들기

7z 형식은 파일을 보호하기 위해 AES 암호화를 지원합니다. 7z 파일을 암호화하기 위해 SevenZipAESEncryptionSettings 클래스를 사용합니다. 다음 코드 샘플은 C#을 사용하여 AES 암호화된 7z 아카이브를 만드는 방법을 보여줍니다.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.7z");
}

C#을 사용하여 7z 항목에 대해 다른 암호 설정

7z 형식을 사용하면 모든 파일 항목에 대해 다른 암호를 지정할 수도 있습니다. 예를 들어, 7z 아카이브에서 두 개의 파일을 압축하려는 경우 각 파일에 대해 다른 암호를 지정할 수 있습니다. 다음은 7z 항목에 대해 다른 암호를 설정하는 단계입니다.

다음 코드 샘플은 7z 아카이브의 모든 항목에 비밀번호를 설정하는 방법을 보여줍니다.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

결론

이 기사에서는 C#을 사용하여 프로그래밍 방식으로 7z 아카이브를 만드는 방법을 배웠습니다. 또한 AES 암호화된 7z 파일을 생성하고 모든 파일 항목에 대해 비밀번호를 설정하는 방법을 살펴보았습니다. 여기에서 파일 압축/압축 해제에 대해 자세히 알아볼 수 있습니다.

관련 기사