Wie erstelle ich ZipArchive aus Dateien im Speicher in C #?

Ist es irgendwie möglich, ein ZipArchive aus den Dateien im Speicher (und nicht auf der Festplatte) zu erstellen?

Folgen ist der Anwendungsfall: Mehrere Dateien werden in einem @ empfangIEnumerable<HttpPostedFileBase> Variable. Ich möchte alle diese Dateien mit @ komprimiereZipArchive. Das Problem ist, dassZipArchive erlaubt nurCreateEntryFromFile, das einen Pfad zur Datei erwartet, wo ich gerade die Dateien im Speicher habe.

Frage Gibt es eine Möglichkeit, einen 'Stream' zu verwenden, um den 'Eintrag' in @ zu erstelleZipArchive, damit ich den Inhalt der Datei direkt in die Zip einfügen kann?

Ich möchte nicht zuerst die Dateien speichern, die Zip-Datei erstellen (aus den Pfaden der gespeicherten Dateien) und dann die einzelnen Dateien löschen.

Hier,attachmentFiles istIEnumerable<HttpPostedFileBase>

using (var ms = new MemoryStream())
{
    using (var zipArchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
    {
        foreach (var attachment in attachmentFiles)
        {
            zipArchive.CreateEntryFromFile(Path.GetFullPath(attachment.FileName), Path.GetFileName(attachment.FileName),
                                CompressionLevel.Fastest);
        }
    }
    ...
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage