我有一个非常简单的问题,但我无法解决。我已经构建了一个Windows应用程序,我想在WP8.1上移植。这是非常基本的:我有一个.txt文件(2列),其中包含随机挑选的问题和答案。
我的问题非常简单:与此文件进行交互的“最佳”或最简单的方法是什么?
我找到了一个描述Windows.Storage命名空间使用的教程。我有以下代码:
async Task<int> getHighScore()
{
Uri highscoreFileLoc = new Uri("ms-appx:///Assets/Highscore.txt");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(highscoreFileLoc);
var highscore = await FileIO.ReadTextAsync(file);
int HighScore;
int.TryParse(highscore, out HighScore);
return HighScore;
}
这很好用,我可以获取txt文件中的数据。它适用于这个非常简单的示例,但在更大的应用程序中,我对await / async非常困惑;我的应用运行但卡住了。所以我正在寻找一种更简单的方法。
我找到了System.IO.IsolatedStorage命名空间......但发现它没有使用最新的WP8.1。唯一的选择是
using System.IO.Compression;
更进一步,我找到了关于LINQ和数据库的教程(在MSDN上)。但是,使用这么简单的任务似乎有点复杂。
我应该继续使用“StorageFile方式”做什么,还是切换到数据库?或者有更简单的方法吗?
感谢您的帮助。
答案 0 :(得分:0)
WinRT上没有孤立存储,因为它是Silverlight的遗产,而WinRT则使用Windows.Storage
命名空间。压缩不是一种选择,因为它与存储数据无关。
冻结是由阻塞UI线程引起的。检查您的代码,可能会有一些阻止操作。
这是一个提示。正如我在您的代码中看到的那样,您将高分存储在软件包的安装文件夹中。我知道,将文件拖放到那里非常容易,但是您无法更改或删除,因为应用程序文件夹中的每个文件都是如此对于沙盒应用程序是只读的。
考虑使用ms-appdata://
方案将文件存储在AppData文件夹中。