Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Добавление файлов в архив с зашифрованными именами файлов. SevenZipSharp

#c_sharp #7z


При добавлении файлов в архив с зашифрованными именами файлов получаю исключение:
Invalid archive: open/read error! Is it encrypted and a wrong password was provided?
If your archive is an exotic one, it is possible that SevenZipSharp has no signature
for its format and thus decided it is TAR by mistake. Message: Can not update the archive:
Open() failed.
Если EncryptHeaders = false то всё работает нормально. 
А как добавить если EncryptHeaders = true?

SevenZipCompressor szc = new SevenZipCompressor();
szc.ArchiveFormat = OutArchiveFormat.SevenZip;
szc.ZipEncryptionMethod = ZipEncryptionMethod.Aes256;
//szc.EncryptHeaders = true;

szc.CompressFilesEncrypted("test.7z", "123", @"C:\Test\123.txt");
szc.CompressionMode = CompressionMode.Append;
szc.CompressFilesEncrypted("test.7z", "123", @"C:\Test\1234.txt");

    


Ответы

Ответ 1



Существует, как минимум, два варианта решения данной проблемы. 1. Изменить формат архива. Вместо szc.ArchiveFormat = SevenZip.OutArchiveFormat.SevenZip; использовать szc.ArchiveFormat = SevenZip.OutArchiveFormat.Zip; как советуют здесь. 2. Добавлять все файлы одновременно передавая полные пути в массиве при создании архива. Например: string[] arr = { @"C:\Test\1234.txt", @"C:\Test\1235.txt" }; ... szc.CompressionMode = CompressionMode.Create; szc.CompressFilesEncrypted("test.7z", "123", arr); Однако в этом случае все файлы добавляются сразу и добавить два раза один и тот же файл не получится.

Комментариев нет:

Отправить комментарий