Windows Phone epub reader

本文关键字:reader epub Phone Windows | 更新日期: 2023-09-27 18:33:27

我正在尝试构建一个wp7应用程序,该应用程序必须允许用户阅读epub格式的电子书。由于没有任何可用的库可以在Windows手机上读取epub文件,因此我正在尝试创建一个。所以我必须解压缩文件,然后解析它。
问题是我无法解压缩 epub 文件。我正在使用SharpZipLib.WindowsPhone7.dll但出现异常:

尝试访问该方法失败:System.IO.File.OpenRead(System.String)

在这一行上:

ZipInputStream s = new ZipInputStream(File.OpenRead(path_epubfile));

请问有人可以帮我吗?

Windows Phone epub reader

这将取决于如何获得内容。这里有三种可能的选择;

选项 1:如果使用"Content"的生成操作将内容添加到项目中,则可以使用 StreamResourceInfo 类(在 System.Windows.Resources 命名空间中)获取流

  StreamResourceInfo info = Application.GetResourceStream(new Uri("MyContent.txt", UriKind.Relative));
  using (info.Stream) {
    // Make use of the stream as you will
  }

选项 2:如果已将其添加到项目中并将"生成操作"设置为"嵌入的资源",则需要使用GetManifestResourceStream()

using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ProjectName.MyContent.txt")) {
  // Make use of stream as you will
}

注意:您需要将"项目名称"替换为项目名称。因此,如果您的项目是"EPubReader",而嵌入的资源是"Example.txt",则需要将"EPubReader.Example.txt"传递给GetManifestResourceStream()。您可以使用GetManifestResourceNames()来查看哪些资源可用。

选项 3:如果在运行时获取了内容,它将存储在 IsolatedStorage 中。

using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) {
  using (IsolatedStorageFileStream stream = store.OpenFile("MyContent.txt", FileMode.Open)) {
    // Make use of stream as you will
  }
}