Пароль Ionic Zip устанавливается в хранилище BLOB-объектов Azure и задает наилучшее сжатие для папки zip, а не для файлов

Как установить лучшее сжатие 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);                        
}

Я только что добавил эти две строки, но пароль не установлен в папке zip в хранилище BLOB-объектов Azure.

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

1 ответ

Согласно вашему описанию, я использую DotNetZip версии 1.10.1, чтобы проверить эту проблему на моей стороне. И вот замечание о Password недвижимость в ZipFile:

При записи zip-архива этот пароль применяется к записям, а не к самому zip-архиву. Он применяется к любому ZipEntry, впоследствии добавленному в ZipFile с использованием одного из методов 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);
    }
}
Другие вопросы по тегам