下载文件并将其保存在独立存储
问题描述:
我已经按照我的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
- 它是正确的存储文件夹。
我错过了什么?
答
我发现小错误:
我忘了,那fileUri
是Uri到本地服务器。只需添加嵌套属性来显示固定的问题。
答
当您调用代码时,folder
的值是多少?您可能需要将Package.appxmanifest中的功能添加到相应的文件夹(例如图片文件夹,文档文件夹)。
默认情况下,Modern UI应用程序的沙盒特性意味着它只能显式访问它自己的本地文件夹(想象它像隔离存储)。为了访问其他位置,清单文件必须声明它需要访问这些其他位置。可用的位置是相当有限的。
但是,如果使用“保存文件选取器”,则可以访问更大范围的保存文件的位置。
文件夹(Windows.Storage.StorageFolder):Atr:Dirrectory,显示类型:文件夹..你还想知道什么?在这个文件夹中,我不仅要保存图像,而且要保存pdf和其他文件。 – jimpanzer 2013-05-13 11:51:29
@jimpanzer在Win8中,例如,你想要访问文档文件夹,那么你需要在应用程序清单中明确地这样说:http://msdn.microsoft.com/en-us/library/windows/apps /hh464936.aspx – 2013-05-13 11:54:08