我在Windows 8 / RT应用程序中有以下代码:
public static async Task<StorageFile> SaveAsync(Uri fileUri, StorageFolder folder, string fileName)
{
try
{
var file = await folder.CreateFileAsync(fileName);
var downloader = new BackgroundDownloader();
var download = downloader.CreateDownload(fileUri, file); // here Exeption is fired
var res = await download.StartAsync();
return file;
}
catch (Exception e)
{
Debug.WriteLine(ex.Message);
}
return null;
}
ex.message:Access denied
注意:
file
- 这是正确的StorageFile
(ContentType=image/jpg
)
fileUri
- 这是正确的图像uri
folder
- 这是正确的存储文件夹。
我错过了什么?
答案 0 :(得分:1)
调用代码时folder
的值是多少?您可能需要在Package.appxmanifest中将功能添加到相应的文件夹(例如,图片文件夹,文档文件夹)。
默认情况下,Modern UI应用程序的沙盒特性意味着它只能显式访问自己的本地文件夹(将其视为独立存储)。要访问其他位置,您的清单文件必须声明它需要访问其他位置。但是,可用的位置非常有限。
但是,如果使用“保存文件选择器”,则可以访问更大范围的位置来保存文件。
答案 1 :(得分:0)
我发现了一点错误:我忘了,fileUri
是本地服务器的Uri。只需添加嵌套属性即可显示已修复的问题。