Windows Phone 8.1 -从文档文件夹中读取文件而不使用UI
本文关键字:文件 读取 UI 文件夹 Phone 文档 Windows | 更新日期: 2023-09-27 18:13:05
我正在运行Windows Phone 8.1应用程序,我想在启动时从存储在"C:'Data'Users'Public'Documents'file.txt"中的文本文件中获取一些值
我不想为此打开UI,应用程序应该在没有用户干预的情况下完成它。该位置在我的应用程序之外(即C:'Data…)。
我该怎么做?
例如:Uri uri = new Uri(@"C:'Data'Users'Public'Documents'test.txt");
var f = awaitWindows.Storage.StorageFile.GetFileFromApplicationUriAsync(uri);
不起作用。它给出了一个异常:Message = "Value does not fall within the expected range."
你将无法在windows phone应用程序中访问该文件夹。取而代之的是将文件存储在应用程序的本地文件夹中,然后只需使用流阅读器即可。这是我在我的应用程序中使用的:
// RETURN ROWS IN TEXT FILE AS STRING ARRAY
public static async Task<string[]> getData(string fileName)
{
var myStream = await (await Package.Current.InstalledLocation.GetFolderAsync("MyFolder")).OpenStreamForReadAsync(fileName);
using (var streamReader = new StreamReader(myStream))
return streamReader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
}
只需使用GetFolderFromPathAsync
获取文件所在的文件夹,然后使用GetFileAsync
从该文件夹获取文件。之后,您可以使用ReadTextAsync
方法读取其所有内容。希望对你有帮助。
public static async Task<string> ReadFile()
{
StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(ApplicationData.Current.LocalFolder.Path + "''" + "YourFolderName");
StorageFile file = await folder .GetFileAsync("yourfile.txt");
string text = await Windows.Storage.FileIO.ReadTextAsync(file);
return text;
}