我有一个包含多个文件的目录。我想将此文件夹压缩为 zip(使用 Xceed 第三方 dll 库)并通过 HTTP 推送给用户。同时,我想创建文件夹内所有文件的日志,并将其作为压缩文件的一部分附加。
我目前正在使用 DotNetZip,它运行良好。我需要 Xceed 中的等效项。
下面是使用 DotNetZip 的代码
Imports Ionic.Zip
' Tell the browser we're sending a ZIP file!
Dim downloadFileName As String = String.Format("YourDownload-{0}.zip", DateTime.Now.ToString("yyyy-MM-dd-HH_mm_ss"))
Response.ContentType = "application/zip"
Response.AddHeader("Content-Disposition", "filename=" & downloadFileName)
' Zip the contents of the selected files
Using zip As New ZipFile()
' Construct the contents of the README.txt file that will be included in this ZIP
Dim readMeMessage As String = String.Format("Your ZIP file {0} contains the following files:{1}{1}", downloadFileName, Environment.NewLine)
For i As Integer = 0 To MainDirs.Length - 1
readMeMessage &= String.Concat(vbTab, "* ", MainDirs(i), Environment.NewLine)
' Now add the file to the ZIP (use a value of "" as the second parameter to put the files in the "root" folder)
zip.AddFile(MainDirs(i), "Your Files")
Next
' Add the README.txt file to the ZIP
zip.AddEntry("README.txt", readMeMessage, Encoding.ASCII)
' Send the contents of the ZIP back to the output stream
zip.Save(Response.OutputStream)
End Using
End Sub