Робота з архівами 7z

Огляд

7-Zip - архіватор файлів з високим ступенем стиснення. API Aspose.ZIP дозволяє працювати зі створенням і керуванням архівами 7-Zip у ваших програмах без необхідності будь-яких інших сторонніх програм. API Aspose.ZIP надає клас  SevenZipArchive для роботи з архівами 7-Zip. Цей клас надає різні методи для виконання операцій над архівами. API надає клас SevenZipArchiveEntry для представлення одного файлу в архіві 7z.

Створіть єдиний запис 7-Zip

У наведеному нижче прикладі коду показано, як створити запис 7-Zip за допомогою екземпляра SevenZipArchive.

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

API Aspose.ZIP надає клас SevenZipAESEncryptionSettings, який надає налаштування для шифрування або дешифрування AES для архівів 7z. У наступному прикладі коду показано, як надати параметри шифрування 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.

7-Zip-архів зі стисненням LZMA

У наведеному нижче прикладі коду показано, як створити архів 7z зі стисненням LZMA та шифруванням AES.

Кроки: Створення архів 7z із стисненням LZMA та шифруванням AES через C#

  1. Відкрийте потік файлів для вихідного архіву 7z за допомогою FileMode.Create.
  2. Створіть екземпляр класу SevenZipArchive.
  3. Використовуйте метод CreateEntry, щоб додати запис до архіву, вказавши:
    • Файл, який потрібно стиснути. — Налаштування стиснення LZMA за допомогою SevenZipLZMACompressionSettings.
    • Параметри шифрування AES за допомогою SevenZipAESEncryptionSettings (з паролем).
  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    }

Так само ви можете створити архів 7z із методом стиснення BZip2, PPMd і LZMA2 або зберігати файли без стиснення.

Встановлення іншого пароля для записів

У наведеному нижче прикладі коду показано, як створити архів із записами, зашифрованими різними паролями для кожного запису.

Кроки: Створення архів 7z із стисненням LZMA та шифруванням AES через C#

  1. Відкрийте потік файлів, щоб створити архів 7z за допомогою FileMode.Create.
  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.