Utwórz archiwum 7Zip w C#

W poprzednim poście omówiłem różne sposoby tworzenia archiwów ZIP przy użyciu C#. W artykule omówiono również sposób tworzenia zaszyfrowanych i chronionych hasłem archiwów ZIP. Oprócz formatu ZIP istnieje kilka innych powszechnie używanych formatów archiwów, takich jak 7z, tar, RAR itp. Wśród nich format archiwum 7z jest oparty na architekturze open source i służy do kompresji plików i folderów o wysokim współczynniku kompresji. Obsługuje również 256-bitowe szyfrowanie AES i umożliwia również szyfrowanie nazw plików. W tym artykule pokażę, jak programowo tworzyć archiwa 7z (7-Zip) przy użyciu języka C#.

Ten artykuł jest podzielony na następujące sekcje:

Wszystkie kroki i przykłady kodu w tym artykule są oparte na Aspose.ZIP dla platformy .NET. Dlatego upewnij się, że zainstalowałeś interfejs API przy użyciu jednej z następujących metod:

Utwórz archiwum 7z (7-Zip) przy użyciu języka C#

Mogą istnieć dwa możliwe scenariusze kompresji plików do archiwum 7z. Albo masz tylko jeden plik, albo może być kilka plików do skompresowania. Możesz wyraźnie poradzić sobie z obydwoma scenariuszami.

Utwórz archiwum 7z z pojedynczym wpisem

Poniżej przedstawiono kroki tworzenia archiwum 7z z jednym wpisem.

Poniższy przykładowy kod pokazuje, jak utworzyć archiwum 7z (7-Zip) przy użyciu języka C#.

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

Utwórz archiwum 7z z wieloma wpisami

W takim przypadku możesz umieścić pliki w folderze i przekazać ścieżkę do folderu metodzie SevenZipArchive.CreateEntries(). Poniżej przedstawiono kroki dodawania wielu wpisów plików do archiwum 7z.

Poniższy przykładowy kod pokazuje, jak utworzyć archiwum 7z z wieloma wpisami przy użyciu języka C#.

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

Utwórz zaszyfrowane archiwum 7z AES przy użyciu języka C#

Format 7z obsługuje szyfrowanie AES w celu zabezpieczenia plików. Do zaszyfrowania pliku 7z używana jest klasa SevenZipAESEncryptionSettings. Poniższy przykładowy kod pokazuje, jak utworzyć archiwum 7z z szyfrowaniem AES przy użyciu języka C#.

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");
}

Ustaw różne hasła dla wpisów 7z za pomocą C#

Format 7z umożliwia również określenie innego hasła dla każdego wpisu pliku. Na przykład, jeśli zamierzasz skompresować dwa pliki w archiwum 7z, możesz określić inne hasło dla każdego pliku. Poniżej przedstawiono kroki, aby ustawić różne hasła dla wpisów 7z.

Poniższy przykładowy kod pokazuje, jak ustawić hasło dla każdego wpisu w archiwum 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);
    }
}

Wniosek

W tym artykule dowiedzieliśmy się, jak programowo tworzyć archiwa 7z przy użyciu języka C#. Ponadto widzieliśmy, jak tworzyć pliki zaszyfrowane AES 7z i ustawić hasło dla każdego wpisu pliku. Możesz dowiedzieć się więcej o kompresji/dekompresji plików z tutaj.

Powiązane artykuły