Как создать ZipArchive из файлов в памяти в C #?

Можно ли каким-то образом создать ZipArchive из файла (ов) в памяти (а не на самом деле на диске).

Ниже приведен пример использования: Несколько файлов получены вIEnumerable<HttpPostedFileBase> переменная. Я хочу сжать все эти файлы вместе, используяZipArchive, Проблема в том, чтоZipArchive только позволяетCreateEntryFromFile, который ожидает путь к файлу, где, как у меня просто файлы в памяти.

Вопрос: Есть ли способ использовать «поток» для создания «записи» вZipArchive, так что я могу прямо положить содержимое файла в zip?

Я не хочу сначала сохранять файлы, создавать zip (из путей сохраненных файлов), а затем удалять отдельные файлы.

Вот,attachmentFiles являетсяIEnumerable<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);
        }
    }
    ...
}

Ответы на вопрос(2)

Ваш ответ на вопрос