我正在尝试让应用程序在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。任何人都可以解释为什么?
答案 0 :(得分:1)
我猜你不是StreamWriter
using( var writer = new StreamWriter(await file.OpenStreamForWriteAsync()))
{
writer.WriteLine("Hello World");
writer.WriteLine("Goodbye world");
}
。请参阅disposing。
Metronome
这就是你无法读取文件的原因,因为它已经被SreamWriter采用了。
答案 1 :(得分:0)
在使用继承自IDisposable的对象时,始终使用'using'语句。
您正在尝试写入已打开的文件,这会给您UnauthoritedException。
尝试在使用中使用您的代码块。查看此问题以查找有关StreamWriter的更多信息: