0

我们有一个简单的代码来尝试压缩和加密文件。该代码非常适合中等大小的文件。但是,当我们尝试加密和压缩大小为 100MB 的文件时,文件的内容会在进程中丢失,Rebex 最终会压缩一个空文件。

处理大文件有问题吗?

提前谢谢你,这是我们的代码

using (ZipArchive zip = new ZipArchive(ZipFilePath, ArchiveOpenMode.Create))
{
    // Set the Password first
    zip.Password = strUserPIN;

    // Change the default Encryption algorithm 
    zip.EncryptionAlgorithm = useAes256EncryptionForWinZip == "YES" ?
        Rebex.IO.Compression.EncryptionAlgorithm.Aes256 : Rebex.IO.Compression.EncryptionAlgorithm.Zip20;


    // Add the file to newly created "files" folder within the zip file
    zip.AddFile(Temp_BPI_SaveLocation + strDataFileWithTimeStamp, @"\files\");

    //Save the Zip file
    zip.Save();

    // cloase the zip file
    zip.Close();

}
4

1 回答 1

0

不,标准 ZIP 格式只有 4GB 大小限制。100MB 文件应该没有问题。

您观察到的行为看起来很奇怪。你能帮我们重现这个问题吗?
我们可以在https://forum.rebex.net/13878/unable-to-zip-and-encrypt-100-mb-file更详细地讨论它。找到问题的原因后,我将更新此答案。

更新:

目前工作的解决方法是使用重载AddFile(Stream, string)代替(问题仍在供应商网站上审查)AddFile(string, string)

于 2020-12-03T10:14:01.160 回答