【问题标题】:Download a zip folder from a remote server and unzip folder from a silverlight application从远程服务器下载 zip 文件夹并从 silverlight 应用程序解压缩文件夹
【发布时间】:2010-09-30 07:18:56
【问题描述】:

我如何从远程服务器下载压缩文件夹并将文件夹中的整个文件解压缩并将它们存储在与浏览器应用程序中的银灯 3 或 4 隔离的存储空间中。有什么建议请

【问题讨论】:

  • 可以使用 Silverlight 4 的提升权限吗?您希望支持的最低 Windows 版本?

标签: c# silverlight out-of-browser


【解决方案1】:

您可以像使用 Webclient 类的任何文件一样下载 zip 文件,查看 downloading content on demand 的 msdn 文档中的详细信息和示例,它甚至讨论了如何从 zip 存档下载和获取特定文件。

但是,如果您想列出文件,请查看 this blogpost,我实际上并没有尝试过,但它显示了如何获取 zip 存档中的所有文件。

编辑:我还发现 this discussion 提供了一些想法,其中提到了 Silverlight 的 Small unzip utility,这似乎更强大。

然后使用IsolatedStorageFile 类来保存文件。

祝你好运! 奥拉

【讨论】:

  • 博客文章假定条目名称以 UTF-8 编码,不幸的是,许多 Zip 文件将使用 IBM437 进行字符编码,并且 zip 格式不提供确定使用哪种编码的方法。
  • 好点,我发现的第二个实用程序,“小型解压缩实用程序”可能更强大一些,但它可能有同样的缺陷,我不熟悉 zip 编码等。 .
  • 不幸的是,“Small unzip utititly”的链接截至今天已损坏...请参阅sharpgis.net/post/2009/04/22/…
【解决方案2】:

对于(解)压缩,我强烈建议您使用开源 DotNetZip library。 DotNetZip 在 Ms-PL 下获得许可,非常易于使用。

例如,压缩也很容易:

 using (ZipFile zip = new ZipFile())
 {
     zip.AddEntry("MyFileName.png", null, pngStream);

     // Save to stream from SaveFileDialog
     zip.Save(stream);
 } 

【讨论】:

    【解决方案3】:

    Silverlight SharpZipLibSharpZipLib 的完整 Silverlight 3/4 和 Phone7 端口,较少 AES 加密。

    在所有 Silverlight 压缩中都会发现一个显着限制:仅支持条目元的 UTF8 编码。

    【讨论】:

      【解决方案4】:

      您可以使用 http 或 frp 流获取文件,然后使用 GZipStream(.NET 类)解压缩流/文件。

      Gzip 流: http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx

      干杯 --乔克

      【讨论】:

      • System.IO.Compression 在 Silverlight 中不存在
      猜你喜欢
      • 1970-01-01
      • 2018-02-23
      • 2021-10-05
      • 2021-03-03
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多