I have a directory that contains several files. I want to compress this folder to a zip (using Xceed third party dll library) and push to user through HTTP. At the same time I would like to create a log of all the files inside the folder and append that as part of the compressed file.
I am currently using DotNetZip and its working perfectly. I need the equivalant of this in Xceed.
Below is the code using 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