gpt4 book ai didi

c# - 如何将文件解压缩到 .NET 内存流?

转载 作者:IT王子 更新时间:2023-10-29 04:11:57 26 4
gpt4 key购买 nike

我有文件(来自第 3 方)正在通过 FTP 传输到我们服务器上的目录。我下载它们并处理它们甚至“x”分钟。效果很好。

现在,一些文件是 .zip 文件。这意味着我无法处理它们。我需要先解压它们。

FTP 没有压缩/解压缩的概念 - 所以我需要获取 zip 文件,解压缩,然后处理它。

查看 MSDN zip api ,我似乎无法解压缩到内存流?

唯一的办法就是...

  1. 解压缩到一个文件(什么目录?需要一些非常临时的位置...)
  2. 读取文件内容
  3. 删除文件。

注意:文件的内容很小 - 比如 4k <-> 1000k。

最佳答案

内置 Zip 压缩支持:

using System.IO;
using System.IO.Compression;
// ^^^ requires a reference to System.IO.Compression.dll
static class Program
{
const string path = ...
static void Main()
{
using(var file = File.OpenRead(path))
using(var zip = new ZipArchive(file, ZipArchiveMode.Read))
{
foreach(var entry in zip.Entries)
{
using(var stream = entry.Open())
{
// do whatever we want with stream
// ...
}
}
}
}
}

通常你应该避免将它复制到另一个流中 - 只需“按原样”使用它,但是,如果你在 MemoryStream绝对需要它,你可以这样做:

using(var ms = new MemoryStream())
{
stream.CopyTo(ms);
ms.Position = 0; // rewind
// do something with ms
}

关于c# - 如何将文件解压缩到 .NET 内存流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com