Writing Zip Files in-memory C# with Example
The following example will return the byte[] data of a zipped file containing the files provided to it, without needing access to the file system. public static byte[] ZipFiles(Dictionary files) { using (MemoryStream ms = new MemoryStream()) { using (ZipArchive archive = new ZipArchive(ms, ZipArchiveMode.Update)) { foreach (var file in files) { ZipArchiveEntry orderEntry = archive.CreateEntry(file.Key); //create a file with this name using (BinaryWriter writer = new BinaryWriter(orderEntry.Open())) { writer.Write(file.Value); //write the binary data } } } //ZipArchive must be disposed before the MemoryStream has data return ms.ToArray(); } }