从文件模式为读取的文件流创建存档 .zip
Posted
技术标签:
【中文标题】从文件模式为读取的文件流创建存档 .zip【英文标题】:Create an archive .zip from file stream where file mode is Read 【发布时间】:2017-11-02 04:39:45 【问题描述】:有一个 zip 文件夹,其中包含一个 XML 文件。这是从服务中重试的
return File.Open("location", FileMode.Open, FileAccess.Read, FileShare.Read)
现在在 UI 中,当用户单击一个链接时,他应该会获得一个存档 .zip 文件夹,并且该文件应该在该用户下载的包含 XML 文件的文件夹中可用。
目前我正在尝试使用ZipArchiveEntry.ExtractToFile()
。它会创建一个 zip 文件夹,但是当我尝试手动解压缩时,它会显示为空的压缩文件夹。
【问题讨论】:
不要更改问题。发布一个新的。 【参考方案1】:尝试使用 System.IO.Compression 库并使用 ZipFile.ExtractToDirectory(zipPath, ExtractionPath) 这可能会有所帮助。
更多帮助https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-compress-and-extract-files
【讨论】:
这给了我从 ZipArchiveEntry 中提取的文件,但我希望将输出本身作为压缩文件夹 如果要压缩文件夹,请使用 ZipFile.CreateFromDirectory(startPath, zipPath)。如果要解压缩文件夹,请使用 ZipFile.ExtractToDirectory(zipPath, ExtractionPath) 如果您想做任何与压缩相关的操作,请通过我在答案中提到的链接。这可能会有所帮助 我的要求是我有一个流。如果我给它一个 ExtractToFile,它将作为 .xml 文件下载。但我希望 Stream 直接转换为 zip 文件 为迟到的回复道歉,但你可以做冗长的程序,但我想它会起作用的。 1. 将该字符串存储到文件中。 2. 创建它的 zip 3. 解压它。以上是关于从文件模式为读取的文件流创建存档 .zip的主要内容,如果未能解决你的问题,请参考以下文章