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 8.1 -从文档文件夹中读取文件而不使用UI

你将无法在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;
}