使用Windows 8 xaml C#读取和编写xml时System.Unauthorizedaccesexception

时间:2012-05-30 08:22:28

标签: c# windows-8 microsoft-metro winrt-xaml

我正在使用Windows 8 xaml C#apps,我正在尝试阅读一首歌xml并为其添加新节点。代码是:

StorageFolder sf;
sf = KnownFolders.MusicLibrary;
StorageFile file = await sf.GetFileAsync(strSongName);
var item = await file.OpenAsync(FileAccessMode.Read);
IRandomAccessStream raStream;
IOutputStream outputStream;
DataWriter writer;
var lc = ApplicationData.Current.LocalFolder;
var infolder = Windows.ApplicationModel.Package.Current.InstalledLocation;

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(infolder.Path);
StorageFile file1 = await folder.GetFileAsync("songxml.xml");
var filetest = await file1.OpenAsync(FileAccessMode.Read);
Stream inStream = filetest.AsStreamForRead();
XDocument xdoc = XDocument.Load(inStream);
string content = xdoc.ToString();
raStream = await file1.OpenAsync(FileAccessMode.ReadWriteUnsafe);
outputStream = raStream.GetOutputStreamAt(0);
writer = new DataWriter(outputStream);
StringBuilder outputText = new StringBuilder();
outputText.Append(content.ToString());

运行此代码时出现System.Unauthorizedaccessexception

2 个答案:

答案 0 :(得分:0)

我的通灵调试能力告诉我你需要在功能上提到你将访问音乐已知文件夹,而你还没有这样做。

enter image description here

我是对的吗?

答案 1 :(得分:0)

我......实际上也遇到了同样的问题。鉴于你上次发表评论的日期,我猜你现在已经弄明白了。不过,也许会有其他人访问这个帖子,所以...... 我想你应该确保你已经添加了你期望的声明扩展 - >支持的声明 - >文件类型关联。 使用音乐库时可能没有这种限制,但对于文档库(make case),情况确实如此。

编辑:确保备份LocalState文件夹的内容,因为对应用程序清单的每次更改都会导致删除您的内容。

快乐编码