【问题标题】:Extract files from a zip file using Xamarin Android and Portable Class Libraries使用 Xamarin Android 和可移植类库从 zip 文件中提取文件
【发布时间】:2014-01-19 14:12:03
【问题描述】:

我正在尝试在我的 Xamarin Android mvvmCross 项目中实现 zip 功能。

我想知道是否有类似于 Microsoft.Bcl.Compression 的存档库,用于从 zip 文件中提取文件,并且 Mono Android 支持。我曾尝试使用 zlib 便携,但我注意到它只提供压缩和解压缩流。

提前谢谢你。

【问题讨论】:

    标签: xamarin.android xamarin mvvmcross portable-class-library


    【解决方案1】:

    通常文件处理在 PCL 中不起作用,因为它们对底层文件系统一无所知。因此,对于您打算支持的每个平台,您都需要某种文件抽象。在 MvvmCross 中,您可以为此提供您自己的插件。 PCL 包含所有逻辑,而依赖于平台的项目负责将流发送到您的 PCL 的所有文件处理。

    您可以在此处阅读有关插件的更多信息:https://github.com/MvvmCross/MvvmCross/wiki/MvvmCross-plugins

    【讨论】:

      【解决方案2】:

      按照 Cheesebaron 的建议,通过接口将功能注入 PCL。对于 Android,您可以使用 Xamarin 库中提供的 Java.Util.Zip.ZipFile。

      【讨论】:

        【解决方案3】:

        PCL 不使用路径提供对文件系统的访问。但是,Microsoft.Bcl.Compression NUGet 包添加了基于流的压缩支持,包括 ZIP 存档。虽然这个 NuGet 包只为 Windows Phone 提供了一个实现,但它确实支持以可移植方式使用特定于平台的压缩 API,这应该包括 Mono 平台。

        显然现在有一个bug 阻止了它的工作。有关更多详细信息,请参阅 Stack Overflow 上的 question

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-12
          相关资源
          最近更新 更多