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

C# 下载文件并将其保存在独立存储中,c#,windows-8,windows-store-apps,isolatedstorage,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

我的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;
    }
publicstaticasync任务SaveAsync(urifileuri,StorageFolder文件夹,字符串文件名)
{
尝试
{
var file=await folder.CreateFileAsync(文件名);
var downloader=new BackgroundDownloader();
var download=downloader.CreateDownload(fileUri,file);//这里触发了Exeption
var res=wait download.StartAsync();
返回文件;
}
捕获(例外e)
{
Debug.WriteLine(例如消息);
}
返回null;
}
例如消息:
访问被拒绝

注:

file
-它是一个正确的
StorageFile
ContentType=image/jpg

fileUri
-它是正确的图像uri
文件夹
-它是正确的存储文件夹。

我错过了什么?

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

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


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

我发现了一个小错误:
我忘了,
文件Uri
是本地服务器的Uri。只需将嵌套属性添加到清单中即可解决问题。

文件夹(Windows.Storage.StorageFolder):Atr:directory,显示类型:File folder。。你还想知道什么?在这个文件夹中,我不仅要保存图像,还要保存pdf和其他文件。@jimpanzer在Win8中,如果您想访问documents文件夹,则需要在应用程序清单中明确说明: