我的Windows 8商店应用程序中有一个嵌入式文本文件,我现在将其设置为内容以进行构建操作。我尝试使用以下代码(适用于Windows Phone),并根据此帖子中的说明对其进行了一些修改:
但似乎很多语法已经改变,我在网上找到的大多数教程都关注Windows 8 Consumer Preview中可用的内容,而不是Windows 8的最终版本。这是我目前正在使用的代码, Windows Phone版本中的一些原始语法仍然存在:
private async void Search(object sender, RoutedEventArgs e)
{
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"folder\data.txt");
var stream = await file.OpenStreamForReadAsync();
var rdr = new StreamReader(stream.AsInputStream());
try
{
while ((line = file.ReadLine()) != null)
{
string[] temp = line.Split(':');
int tmp = 0;
int.TryParse(temp[0], out tmp);
data.Add(tmp, temp[1]);
}
}
finally
{
if (file != null)
file.Close();
}
}
答案 0 :(得分:1)
最简单快捷的方法是以这种方式使用FileIO助手:
// custom app package uri
var uri = new Uri("ms-appx:///folder/data.txt");
//get the file
var localFile = await StorageFile.GetFileFromApplicationUriAsync(uri);
// read the text
var text = await Windows.Storage.FileIO.ReadTextAsync(localFile);
答案 1 :(得分:0)
在WinRT中从文件中读取文本非常简单:
http://msdn.microsoft.com/en-us/library/windows/apps/hh758325.aspx#reading_from_a_file
答案 2 :(得分:0)
首先,确认该文件已标记为内容,并且“如果更新则复制”设置为true。
您的方法应如下所示:
private async void Search(object sender, RoutedEventArgs e)
{
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"folder\data.txt");
var stream = await file.OpenStreamForReadAsync();
var rdr = new StreamReader(stream.AsInputStream());
var contents = await rdr.ReadToEndAsync();
}
这会将文件内容读入字符串变量名contents
。从那里,你可以随心所欲地做任何事情。
WindowsRT中的文件访问API来自“.NET for Windows Store apps”配置文件,因此当您查看MSDN时,您需要确保要使用的API包含在受支持框架列表中的API中。