Erstellen von zip aus mehreren Dateien im Speicher

Ich versuche, mit SharpZipLib zu generieren, die zip-Datei und lassen Sie den client herunterladen.

Derzeit zip-Ordner erstellt und auf client Maschine, aber das Problem ist download.zip Ordner ist leer. Die Dateien die in einem Ordner sind nicht im zip-Ordner.

Unten ist der code, den ich ausprobiert habe.

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
ICSharpCode.SharpZipLib.Checksums.Crc32 crc = new ICSharpCode.SharpZipLib.Checksums.Crc32();

//stream directly to client.
ICSharpCode.SharpZipLib.Zip.ZipOutputStream output = new ICSharpCode.SharpZipLib.Zip.ZipOutputStream(response.OutputStream);
output.SetLevel(9);
string[] files =    Directory.GetFiles("D:/newfolder/");
for (int i = 0; i < files.Length; i++)
{
    ICSharpCode.SharpZipLib.Zip.ZipEntry entry = new ICSharpCode.SharpZipLib.Zip.ZipEntry(files[i].ToString());
    entry.DateTime = DateTime.Now;
    System.IO.FileStream fs = new System.IO.FileStream(files[i].ToString(), FileMode.Open);      
    byte[] buffer = new byte[fs.Length];
    fs.Read(buffer, 0, buffer.Length);
    entry.Size = fs.Length;
    fs.Close();
    crc.Reset();
    crc.Update(buffer);
    entry.Crc = crc.Value;
    output.PutNextEntry(entry);
    output.Write(buffer, 0, buffer.Length);
}

output.Finish();
output.Close();
response.Clear();
response.ContentType = "D:/Work Area/";
response.AddHeader("Content-Disposition", "attachment; filename=" + "download.zip");
response.End();

Kann mir jemand sagen, was ist das Problem? Warum die Dateien nicht vorhanden sind .zip

Vielleicht ist das Beispiel könnte dir helfen: codeproject.com/Articles/23010/...

InformationsquelleAutor riya | 2012-03-20

Schreibe einen Kommentar