【问题标题】:Windows Phone 8.1 - Read Files from Documents folder without using UIWindows Phone 8.1 - 从 Documents 文件夹中读取文件而不使用 UI
【发布时间】:2015-09-17 11:02:12
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      只需使用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;
      }
      

      【讨论】:

      • 您无法访问来自Application Folder的其他文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多