【问题标题】:Ionic Zip password set in azure blob storage and set best compression for zip folder not filesIonic Zip 密码设置在 azure blob 存储中,并为 zip 文件夹而不是文件设置最佳压缩
【发布时间】:2017-06-01 07:26:17
【问题描述】:

如何设置 zip 文件夹的最佳压缩并为 Zip 文件夹设置密码,我使用的代码很少,请帮助我如何为 zip 文件夹设置最佳压缩和密码。

using (var zipStream = new MemoryStream())                    
{ 
zipFile.Save(zipStream);
zipStream.Seek(0, SeekOrigin.Begin);                        
CloudBlockBlob cblob = container.GetBlockBlobReference("MockTestZip/MT-" + this.mockExamId + ".zip");
cblob.UploadFromStream(zipStream);                        
}

我刚刚在其中添加了这两行,但密码未设置在 azure blob 存储的 zip 文件夹中

zipFile.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zipFile.Password = "encrypt";

【问题讨论】:

    标签: c# azure azure-storage ionic-zip


    【解决方案1】:

    根据您的描述,我利用DotNetZip version 1.10.1 来测试我这边的这个问题。这里是关于ZipFile 中的Password 属性的备注:

    在编写 zip 存档时,此密码应用于条目,而不是 zip 存档本身。它适用于随后添加到 ZipFile 的任何 ZipEntry, 使用 AddFile、AddDirectory、AddEntry 或 AddItem 方法等之一。

    根据您的情况,我假设您可以将文件存储在没有密码的 zip 文件中,然后将 zip 文件存储在第二个带密码的外部 zip 文件中,如下所示:

    using (ZipFile zipFile = new ZipFile())
    {
        zipFile.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
        zipFile.Password = "{your-password}";
        zipFile.AddFile(@"inner.zip",""); //Passing the empty string ("") to store your zip file at the root path within the archive.
        using (var zipStream = new MemoryStream())
        {
            zipFile.Save(zipStream);
            zipStream.Seek(0, SeekOrigin.Begin);
            CloudBlockBlob cblob = container.GetBlockBlobReference("MockTestZip/MT-" + this.mockExamId + ".zip");
            cblob.UploadFromStream(zipStream);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      相关资源
      最近更新 更多