Windows Phone 8.1 - 不使用UI

时间:2015-09-17 11:02:12

标签: c# windows-phone-8 windows-phone-8.1 windows-phone

我正在运行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."

2 个答案:

答案 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;
}