Пароль 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);
}
}