SevenZipSharp附加一个加密的档案



我正在使用七个zip尖锐,并且在尝试将文件添加到加密存档时遇到问题。附加到非加密存档(使用适当的方法)似乎有效,但加密存档会引发以下错误

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.

我想知道是否有其他人成功地完成了这项工作这是一些示例代码 im 使用

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

谢谢

我有同样的问题。我通过在未加密的情况下压缩但添加具有加密功能的 +1 文件来"解决"这个问题。7z 文件管理器要求输入密码,7z 包含所有文件 - 这对我来说已经足够了。当然,文件管理器列出了其余未加密的文件。

仍在寻找解决此问题的方法,但对于解决方法,它只是暂时起作用。

有同样的问题尝试:

 compressor.ArchiveFormat = SevenZip.OutArchiveFormat.Zip;

的 :

 compressor.ArchiveFormat = SevenZip.OutArchiveFormat.SevenZip;

最新更新