我正在运行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."
答案 0 :(得分:0)
您将无法在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);
}
答案 1 :(得分:0)
只需使用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;
}