微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 C# 即时解压缩谷歌存储上的文件

如何解决使用 C# 即时解压缩谷歌存储上的文件

我有一个非常有趣的问题,我希望我可以使用 .Net 解决它,只是我在谷歌存储中有一个 zip 文件,我想解压并移动到不同的存储桶,但我没有足够的内存和存储空间保存整个文件并解压。为了解决这个问题,我必须读取文件末尾的 zip 文件的中央目录部分,然后进行流式解压。有没有人研究过类似的问题?

到目前为止,我想使用以下代码文件获取最后 1024 个字节:

  var fileInfo = _storage.Getobject(BucketName,fileName,new GetobjectOptions { Projection = Projection.Full });

var stream = new MemoryStream();
_storage.Downloadobject(BucketName,stream,new DownloadobjectOptions { Range = new System.Net.Http.Headers.RangeHeaderValue((long)(fileInfo.Size - 1024),(long)(fileInfo.Size)) });

问题是我无法从这个流中读取中央目录:

ZipArchive z = new ZipArchive(stream);

解决方法

您可以尝试使 sunzip 适应您的需求。它将 zip 文件作为流读取并解压缩。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。