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));
请问有人可以帮我吗?
这将取决于如何获得内容。这里有三种可能的选择;
选项 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
}
}