无法访问 Windows phone 应用程序上的 LocalFolder 文件(UnauthorizedAccessException)

Cannot access LocalFolder files on Windows phone app (UnauthorizedAccessException)

我正在尝试让应用程序在 Windows Phone 中写入(然后读取)一个简单的文本文件 8. 我的应用程序有三个控件:一个创建文件按钮,一个显示文件按钮, 和一个文本框,内容应该显示在其中。

我在我的代码中设置了以下事件:

private async void btnCreateFile_Click(object sender, RoutedEventArgs e)
    {
        await ApplicationData.Current.LocalFolder.CreateFileAsync("myFile.txt");
        StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("myFile.txt");

        StreamWriter writer =  new StreamWriter(await file.OpenStreamForWriteAsync());

        writer.WriteLine("Hello World");
        writer.WriteLine("Goodbye world");
    }

    private async void btnShowFile_Click(object sender, RoutedEventArgs e)
    {
        StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("myFile.txt");

        StreamReader reader = new StreamReader(await file.OpenStreamForReadAsync());

        string text = reader.ReadToEnd();
        text1.Text = text;

    }
}

应用程序在创建 StreamReader 时抛出 UnauthorizedAccessException。任何人都可以阐明原因吗?

我猜你不是 disposing the StreamWriter. See the example on MSDN

 using( var writer =  new StreamWriter(await file.OpenStreamForWriteAsync()))
 {
        writer.WriteLine("Hello World");
        writer.WriteLine("Goodbye world");
  }

这就是你无法读取文件的原因,因为它已经被 SreamWriter 占用了。

使用从 IDisposable 继承的对象时始终使用 'using' 语句。

您正在尝试写入一个已打开的文件,这会导致出现 UnauthoritedException。

尝试使用 using.Check 中的代码块解决这个问题,以找到有关 StreamWriter 的更多信息:

how to use StreamWriter class properly?