0

我的 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;
    }

例如消息:Access denied

注意:
file- 它是正确的StorageFile( ContentType=image/jpg)
fileUri- 它是正确的图像 uri
folder- 它是正确的存储文件夹。

我错过了什么?

4

2 回答 2

1

folder调用代码时的值是多少?您可能需要将 Package.appxmanifest 中的功能添加到适当的文件夹(例如 Pictures 文件夹、Documents 文件夹)。

默认情况下,现代 UI 应用程序的沙盒特性意味着它只能显式访问其自己的本地文件夹(将其视为独立存储)。为了访问其他位置,您的清单文件必须声明它需要访问这些其他位置。但是,可用的位置非常有限。

但是,如果您使用保存文件选择器,您可以访问更大范围的位置来保存您的文件。

于 2013-05-13T11:43:27.547 回答
0

我发现了一个小错误:
我忘了,那fileUri是本地服务器的 Uri。只需添加嵌套属性即可显示已解决的问题。

于 2013-05-13T13:55:08.643 回答