Я использую Seven Zip Sharp, и у меня возникают проблемы с попыткой добавить файл в зашифрованный архив. Добавление к незашифрованному архиву (с соответствующими методами), кажется, работает, но зашифрованный архив выдает следующую ошибку
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.
Мне было интересно, выполнил ли кто-нибудь еще это успешно. Вот пример кода, который я использую
void AppendEncFilefile(Stream docstream, string addfilename, string archivename)
{
SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor();
compressor.CompressionMode = SevenZip.CompressionMode.Append;
compressor.CompressionLevel = SevenZip.CompressionLevel.Ultra;
compressor.ArchiveFormat = SevenZip.OutArchiveFormat.SevenZip;
compressor.EncryptHeaders = true;
//this fails : trying to pass archive and file to add
compressor.CompressFilesEncrypted(datafile, "password", addfilename);
//this fails : trying to pass stream containg data to be written, and filename to save as
compressor.CompressStreamDictionary(
new Dictionary<string, System.IO.Stream>()
{
{ addfilename, xmldocstream }
}
, archivename, "password");
}
Спасибо