string stringToWrite = "SomeStuff";
Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;
Windows.Storage.StorageFolder installedLocation = package.InstalledLocation;
var files = await installedLocation.GetFilesAsync();
foreach (Windows.Storage.StorageFile sf in files)
{
if (sf.Name.Equals("log.txt"))
{
await FileIO.AppendTextAsync(sf, stringToWrite);
}
}
然而以下失败的AccessDenied:
Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;
Windows.Storage.StorageFolder installedLocation = package.InstalledLocation;
var log = await installedLocation.GetFileAsync("log.txt");
await FileIO.AppendTextAsync(log, stringToWrite);
唯一的区别是循环访问GetFilesAsync方法返回的文件与按名称获取文件。顺便说一句,按名称获取文件是有效的,因为如果我在GetFileAsync中拼错了log.txt,我会得到一个例外。
非常混乱....
答案 0 :(得分:1)
您应该不使用您安装的位置来编写任何文件。根据{{3}}:
,它应该是只读应用程序的安装目录是只读位置。您无法通过文件选择器访问安装目录。
您应该使用Local
,Roaming
或Temporary
存储位置。