Я создал DotNetZip ZipFile с несколькими записями. Я хотел бы преобразовать его в массив байтов, чтобы загрузить его с помощью конструкции загрузки ниже.Преобразование DotNetZip ZipFile в байтовый массив
Using wrkZip As New ZipFile
'----- create zip, add memory stream----------
For n As Integer = 0 To wrkAr.Count - 1
wrkFS = wrkAr(n)
wrkZip.AddEntry(wrkFS.FileName, wrkFS.ContentStream)
Next
dim wrkBytes() as Byte
dim wrkFileName as string = "Test.txt"
===> wrkBytes = ConvertToByteArray(wrkZip) <====
context.Response.Clear()
context.Response.ContentType = "application/force-download"
context.Response.AddHeader("content-disposition", "attachment; filename=" & wrkFileName)
context.Response.BinaryWrite(wrkBytes)
wrkBytesInStream = Nothing
context.Response.End()
Я признаю, что есть метод ZipFile для этого:
wrkZip.Save(context.Response.OutputStream)
Однако, у меня трудный ошибка в использовании, что описано здесь:
DotNetZip download works in one site, not another
поэтому я ищу краткосрочное решение. Краткая история об ошибке заключается в том, что ZipFile записывает на диск в порядке и загружает на очень похожим веб-сайте; он просто не работает в том случае, если мне это нужно прямо сейчас.
Итак, как преобразовать DotNetZip ZipFile в массив байтов? Я просмотрел другие ответы, однако они не описывают этот конкретный случай конвертации целого загруженного ZipFile.
Это работало. Не решила проблема с загрузкой, но ответила на вопрос и устранила ZipFile.Save (в контексте страницы) в качестве проблемы с загрузкой. Благодаря! – wayfarer