2017-01-17 2 views
1

Как установить наилучшее сжатие папки zip и установить пароль для папки Zip, у меня есть несколько кодов, которые я использую, пожалуйста, помогите мне, как наилучшим образом настроить сжатие и пароль для zip-папки.Ионный пароль Zip установлен в хранилище azure blob и устанавливает наилучшее сжатие для 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

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

ответ

0

По вашему описанию, я использовать DotNetZip version 1.10.1, чтобы проверить этот вопрос на моей стороне. А вот замечание о Password собственности в ZipFile:

При написании почтового архива, этого пароль применяется к записям, а не в Zip-архив себя. Это относится к любому ZipEntry затем добавляют к ZipFile, с помощью одного из AddFile, AddDirectory, AddEntry или методы AddItem и т.д.

На основании вашего сценария, я предположил, что вы можете хранить файлы в почтовый индекс файл без пароля, а затем сохраните 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); 
    } 
} 
Смежные вопросы