2013-03-01 153 views
0

我無法通過C#獲取Windows Phone 7中的目錄信息。我的應用程序凍結或崩潰時,我打電話:訪問目錄時Windows Phone 7崩潰

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

它也凍結當我嘗試來確定應用程序的路徑,所以我覺得這是問題所在。

我可能做錯了什麼,我能做些什麼來解決這個問題?

更新: 看來這個問題與sequ​​irity問題有關,但我不知道如何解決這個問題。如果沒有這個sequirity isue,是否有另一種方法可以找到根目錄?

如果有差異,這些文件將存儲在XNA內容管道中。

回答

1

要訪問實際xap中的文件(稱爲「標題存儲」),首先必須將其從XNA內容管道中導出爲Content。從您的內容項目中選擇文件,然後在屬性下將其設置爲Build ActionContent(我相信None可以做同樣的事情)。現在他們將直接導出到您的XAP,並且可以在您的遊戲/應用程序中訪問。其次,要從標題存儲中訪問文件,不能直接在WP7上直接訪問根目錄。使用this class從標題保存訪問文件:

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

該方法返回一個System.IO.Stream,您可以使用直接訪問到文件本身。

如果您的遊戲需要知道特定文件夾中的所有文件,目錄枚舉等在此平臺上是不允許的,所以您必須事先在編譯時生成它,這可以使用Content Pipeline :

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