无法访问 Windows Phone 应用程序上的 LocalFolder 文件(UnauthorizedAccessE

本文关键字:LocalFolder 文件 UnauthorizedAccessE 程序上 应用程序 访问 Windows Phone 应用 | 更新日期: 2023-09-27 17:56:03

我正在尝试让应用程序在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。谁能说明为什么?

无法访问 Windows Phone 应用程序上的 LocalFolder 文件(UnauthorizedAccessE

我想你不是在处理StreamWriter.请参阅 MSDN 上的示例。

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

这就是为什么您无法读取该文件的原因,因为它已经被SreamWriter获取。

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

您正在尝试写入已打开的文件,这将为您提供 UnauthoritedException。

尝试在 using 中使用代码块。查看此问题以了解有关StreamWriter的更多信息:

如何正确使用流编写器类?