【问题标题】:How do I extract a ZIP file on the fly with DotNetZip?如何使用 DotNetZip 即时提取 ZIP 文件?
【发布时间】:2012-07-10 19:06:48
【问题描述】:

在我的 Windows Azure 代码中,我想从 Blob Storage 下载一个 ZIP 文件并即时解压缩并将解压缩的内容存储到磁盘。这样我可以节省先将文件写入磁盘,然后在提取时读取它。

我正在尝试使用 DotNetZip。

ZIP 文件本来就很大,所以被切成小块(不是多部分存档,而是普通的 ZIP 存档,只是切成更小的文件),每块都上传到 Blob 存储中。我知道如何遍历所有部分并在需要时打开每个 blobn

Azure SDK 具有返回 Stream 后代的 CloudBlob.OpenRead()

DotNetZip 具有 ZipInputStream 类,该类具有接受 Stream 的构造函数。

如何将这些片段连接在一起,以便我可以一个一个地下载 ZIP 文件片段并即时提取它们?

【问题讨论】:

    标签: c# azure stream zip dotnetzip


    【解决方案1】:

    创建您自己的流类,它将根据其位置从相应的 CloudBlob 返回数据。

    然后将此类用作ZipInputStream 的输入流。

    public sealed class ZipBlobStream : Stream
    {
    ...
    

    http://msdn.microsoft.com/library/system.io.stream.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多