Работа с архивами 7Z

Обзор

7-Zip-это архивер файла с высоким коэффициентом сжатия. Aspose.zip API позволяет работать с созданием и управлением 7-ZIP-архивами в ваших приложениях без необходимости каких-либо других сторонних приложений. Aspose.zip API предоставляет Sevenziparchive класс для работы с 7-zip-архивами. Этот класс предоставляет различные методы для выполнения операций в архивах. API предоставляет класс SevenziparchiveEntry представляет собой один файл в архиве 7Z.

Создайте 7-Zip Single intry

В следующем примере кода демонстрируется, как создать 7-zip-запись с использованием экземпляра Sevenziparchive.

1try (fileOutputStream SevenziPfile = new FileOutputStream ("archive.7z")) {
2    Попробуйте (Sevenziparchive Archive = new Sevenziparchive ()) {
3        archive.createEntry ("data.bin", "file.dat");
4        Archive.save (Sevenzipfile);
5    }
6} catch (ioException ex) {
7}

Создать 7-ZIP-записи

Класс Sevenziparchive предоставляет методы CreateEntries для рекурсивного добавления и каталогов в данном данном каталоге. В следующем примере кода демонстрируется, как создать 7-zip-архивные записи.

1Попробуйте (Sevenziparchive Archive = new Sevenziparchive ()) {
2    archive.createentries ("datadir");
3    Archive.save ("Sevenzip.7Z");
4}

Настройки шифрования 7-ZIP

Aspose.zip API предоставляет Sevenzipaesencryptionsettings класс, который предоставляет настройки для шифрования или дешифрования AES для архивов 7Z. Следующий пример кода демонстрирует, как предоставить настройки шифрования AES.

1Попробуйте (Sevenziparchive Archive = new Sevenziparchive (new SevenzipentrySettings (null, new Sevenzipaesencryptionsettings ("p@s $"))) {
2    archive.createEntry ("data.bin", new Bytearrayinputstream (new Byte [] {0x00, (byte) 0xff}));
3    Archive.save ("Archive.7Z");
4}

AES-256 является единственным возможным методом шифрования для архива 7Z.

7-Zip Архив с сжатием LZMA

Следующий пример кода демонстрирует, как создать архив 7Z с сжатием LZMA и шифрование AES.

 1try (fileOutputStream SevenziPfile = new FileOutputStream ("archive.7z")) {
 2    Попробуйте (Sevenziparchive Archive = new Sevenziparchive ()) {
 3        Archive.createEntry ("inpit1.bin",
 4                New BytearrayinputStream (New Byte [] {0x00, (byte) 0xff}),
 5                New SevenzipentrySettings (new Sevenziplzmacompressionsettings (),
 6                        Новый Sevenzipaesencryptionsettings ("test1")),
 7                новый файл ("data1.bin"));
 8        Archive.save (Sevenzipfile);
 9    }
10} catch (ioException ex) {
11}

Точно так же вы можете составить 7Z -архив с методом сжатия BZIP2, PPMD ​​и LZMA2 или хранить файлы без сжатия.

Настройка различного пароля для записей

Следующий пример кода демонстрирует, как создать архив с записями, зашифрованными с различными паролями для каждой записи.

 1try (fileOutputStream SevenziPfile = new FileOutputStream ("archive.7z")) {
 2    File fi1 = новый файл ("data1.bin");
 3    File fi2 = новый файл ("data2.bin");
 4    Файл fi3 = новый файл ("data3.bin");
 5
 6    try (SevenZipArchive archive = new SevenZipArchive()) {
 7        archive.createEntry("entry1.bin", fi1, false,
 8                new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
 9                        new SevenZipAESEncryptionSettings("test1")));
10        archive.createEntry("entry2.bin", fi2, false,
11                new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
12                        new SevenZipAESEncryptionSettings("test2")));
13        archive.createEntry("entry3.bin", fi3, false,
14                new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
15                        new SevenZipAESEncryptionSettings("test3")));
16        archive.save(sevenZipFile);
17    }
18} catch (ioException ex) {
19}

Извлечение 7z архивов

Теперь Aspose.zip может извлекать сжатые архивы LZMA, LZMA2, BZIP2 и PPMD.

Следующий пример кода демонстрирует, как извлечь 7z архив в каталог.

1Попробуйте (Sevenziparchive Archive = new Sevenziparchive ("archive.7z")) {
2    archive.extracttodirectory ("extractionFolder");
3}

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.