2013-07-18 32 views
0

當打開存儲在我的項目中的文件時,我真的很擔心。我需要打開一些文件(pdf,html,...),並且有同樣的問題:價值不符合預期範圍在Windows Phone 8中讀取文件:值不在預期範圍內

我已經嘗試了幾種方法:

一)

private async Task<string> ReadFileContentsAsync(string fileName) 
{ 
    StorageFolder foldera = ApplicationData.Current.LocalFolder; 

    try 
    { 
     Stream filea = await foldera.OpenStreamForReadAsync("/Assets/Data/htm/" + fileName + ".htm"); 


     ... 
    } 
    catch (Exception e) 
    { 
     Debug.WriteLine("ERROR ReadFileContentsAsync " + e.Message); 
     return null; 
    } 
} 

B)

private async Task<string> ReadFileContentsAsync(string fileName) 
{ 
    try 
    { 
     StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(
       new Uri("ms-appdata:///Assets/Data/htm/" + fileName + ".htm", UriKind.RelativeOrAbsolute)); 

     ... 
    } 
    catch (Exception e) 
    { 
     Debug.WriteLine("ERROR ReadFileContentsAsync " + e.Message); 
     return null; 
    } 
} 

C)

StorageFile file2 = await StorageFile.GetFileFromApplicationUriAsync(
              new Uri("ms-appdata:///Assets/Data/pdf/lc_dossier_acceso_castellana.pdf", UriKind.Absolute)); 

當我按下一個按鈕,這個動作被推出。

我不知道發生了什麼事。

的文件是在Solution'NewProject'/ NewProject /資產/數據/ */

回答

9

我發現如果我使用詞shash /的文件路徑,我得到這個錯誤。相反,如果我使用反斜槓\我可以得到這些文件。

嘗試以下方法:

StorageFile sFile = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"Assets\Data\htm\" + fileName + ".htm"); 

var fileStream = await sFile.OpenStreamForReadAsync(); 

請注意,你必須把一個@路徑字符串之前,以避免\旅遊解說的景觀特徵。

你也可以得到文件流是這樣的:

var fileStream = File.OpenRead("Assets/Data/htm/" + fileName + ".htm"); 
+0

感謝, 「VAR FILESTREAM = File.OpenRead(」 資產/數據/ HTM/「+文件名+名」 htm 「);」作品!! –

相關問題