0

ユーザーが epub 形式で電子ブックを読めるようにする必要がある wp7 アプリケーションを構築しようとしています。Windows phone で epub ファイルを読み取るための利用可能なライブラリがないため、作成しようとしています。そのため、ファイルを解凍してから解析する必要があります。
問題は、epub ファイルを解凍できないことです。私は使用してSharpZipLib.WindowsPhone7.dllいますが、例外が発生します:

メソッドにアクセスしようとして失敗しました: System.IO.File.OpenRead(System.String)

この行で:

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

誰でも私を助けてもらえますか?

4

1 に答える 1

1

コンテンツの入手方法次第です。ここには 3 つのオプションがあります。

オプション 1 : 「コンテンツ」のビルド アクションを使用してコンテンツがプロジェクトに追加された場合、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
}

注: "ProjectName" をプロジェクトの名前に置き換える必要があります。したがって、プロジェクトが「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
  }
}
于 2012-05-10T13:46:50.813 に答える