我正在爲我的應用程序使用本地存儲的Json文件。使用Visual Studio的模擬器讀取和寫入文件可以正常工作。當我連接設備並嘗試在該設備上運行時,我無法訪問我的Json文件。無法訪問Windows 8.1手機設備上的文件
我的json文件被設置爲內容和始終複製。
這是我的閱讀文件的try語句。我試過兩種主要的方法來訪問文件Current.InstalledLocation
和Uri("ms-appx:///)
。兩者都似乎在模擬器中工作,但都不能在設備上工作。
try
{
var package = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder folder = await package.GetFolderAsync("Data");
StorageFile file = await folder.GetFileAsync("Users.json");
//Uri dataUri = new Uri("ms-appx:///Data/Users.json");
//StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
string jsonText = await FileIO.ReadTextAsync(file);
JsonArray jsonArray = JsonArray.Parse(jsonText);
foreach (JsonValue userValue in jsonArray)
{
//Build my model object out of json
}
}
catch(Exception e)
{
//Creating instance for the MessageDialog Class
//and passing the message in it's Constructor
MessageDialog msgbox = new MessageDialog(e.Message);
//Calling the Show method of MessageDialog class
//which will show the MessageBox
await msgbox.ShowAsync();
}
輸出窗口顯示:
Exception thrown: 'System.ArgumentException' in mscorlib.ni.dll
Exception thrown: 'System.ArgumentException' in mscorlib.ni.dll
編輯: 的嘗試捕捉迴路不捕相關文件系統訪問問題的異常。
在啓動步進時通過我在StorageFile file = await folder.GetFileAsync("Users.json");
失敗了,爲什麼我通過一個按鈕,我在string jsonText = await FileIO.ReadTextAsync(file);
設備故障我期待上運行我的應用程序觸發的功能是運行Windows Embedded 8.1手持更新2(其ToughPad Panazonic FZ-E1)。我是否需要定位Windows 8.1而不是Windows Phone 8.1?它一直在使用手機正常工作,直到控制POS條形碼掃描儀。
任何幫助,將不勝感激我很茫然。我的問題是否可能是由設備上的設置引起的?
而不僅僅是信息,您可以分享全'的ToString()異常的'輸出,包括異常類型,消息和追蹤? – dbc
經過檢查我的try catch塊甚至沒有捕捉異常。我所看到的例外情況不知從何而來。 mscorlib異常似乎沒有引起任何問題,除了踢我離開我的斷點一步。 – JaredStroeb