0

C# を使用して Windows Phone 7 のディレクトリに関する情報を取得できません。以下を呼び出すと、アプリケーションがフリーズまたはクラッシュします。

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("Content/Levels");

アプリケーションのパスを特定しようとするとフリーズするので、ここに問題があると思います。

何が間違っている可能性があり、これを修正するにはどうすればよいですか?

更新: この問題はセキュリティの問題に関連しているようですが、これを解決する方法がわかりません。このセキュリティの問題なしでルート ディレクトリを見つける別の方法はありますか?

違いが生じる場合、これらのファイルは XNA コンテンツ パイプラインに格納されます。

4

1 に答える 1

1

Content実際の xap (「タイトル ストレージ」と呼ばれる) 内のファイルにアクセスするには、まず、XNA コンテンツ パイプラインからファイルをエクスポートする必要があります。コンテンツ プロジェクトからファイルを選択し、[プロパティ] でそのファイルを に設定しますBuild Action(Content同じNoneことを行うと思います)。これで、XAP に生で直接エクスポートされ、ゲーム/アプリ内でアクセスできるようになります。

次に、タイトル ストレージからファイルにアクセスするには、単純に WP7 のルート ディレクトリに直接アクセスすることはできません。このクラスを使用して、タイトル ストレージからファイルにアクセスします。

using (StreamReader r = 
new StreamReader(TitleContainer.OpenStream("Content/Levels/Level1.xml")))
{
    //read the file
}

このメソッドはSystem.IO.Stream、ファイル自体への直接アクセスに使用できる を返します。

ゲームが特定のフォルダー内のすべてのファイルを認識する必要がある場合、このプラットフォームではディレクトリの列挙などは実際には許可されていないため、コンテンツ パイプラインを使用してコンパイル時に事前に生成する必要があります。

http://xbox.create.msdn.com/en-US/sample/contentmanifestextensions

于 2013-03-02T03:41:38.337 に答える