从 ZipArchive 获取文件流

本文关键字:文件 获取 ZipArchive | 更新日期: 2023-09-27 18:31:43

我有一个需要文件流作为输入的函数。

我想将几个文件交给我从上传的zip文件中获得的功能。是否可以在不将文件解压缩到临时文件夹的情况下创建文件流?

我想象着这样的事情:

string path = @"C:'somepathtomyzip";
string filepath = "nameofimagefile"
using (ZipArchive archive = ZipFile.OpenRead(path))
{
    ZipArchiveEntry entry = archive.GetEntry(file_path);
    //generate Filestream from entry
    myFunction(filestreamIneed);
}

从 ZipArchive 获取文件流

您可以使用

ZipArchiveEntry.Open()并将返回的Stream实例的输出复制到FileStream实例:

using (ZipArchive archive = ZipFile.OpenRead(path))
{
    ZipArchiveEntry entry = archive.GetEntry(file_path);
     var memoryStream = return entry.Open();
     using (var fileStream = new FileStream(fileName, FileMode.CreateNew, FileAccess.ReadWrite))
     {
         memoryStream.CopyTo(fileStream); // fileStream is not populated
     }
}