我收到了一个IFormFileCollection
,我想知道如何将这个集合存档到一个zip/rar/whatever archive
文件中,并将这个存档作为stream
其他地方存储?我只想通过Stream
(s) 在内存中工作,因为稍后我将通过 HTTP 发送它。
class ArchiveService {
public Stream ArchiveFiles(string archiveName, IEnumerable<IFormFile> files) {
using MemoryStream stream = new MemoryStream();
using (System.IO.Compression.ZipArchive archive = ZipFile.Open([in memory!], ZipArchiveMode.Create)) {
foreach (var file in files) {
archive.CreateEntry(file.FileName, CompressionLevel.Fastest);
}
//something like -> archive.CopyTo(stream);
}
return stream;
}
}