下载文件并将其保存在独立存储中

时间:2013-05-13 11:27:15

标签: c# windows-8 windows-store-apps isolatedstorage

我在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 - 这是正确的StorageFileContentType=image/jpg
fileUri - 这是正确的图像uri
folder - 这是正确的存储文件夹。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

调用代码时folder的值是多少?您可能需要在Package.appxmanifest中将功能添加到相应的文件夹(例如,图片文件夹,文档文件夹)。

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

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

答案 1 :(得分:0)

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