2013-05-13 112 views
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; 
    } 

ex.message:Access denied

注:
file - 这是一个正确的StorageFileContentType=image/jpg
fileUri - 它是正确的图像uri
folder - 它是正确的存储文件夹。

我错过了什么?

回答

0

我发现小错误:
我忘了,那fileUri是Uri到本地服务器。只需添加嵌套属性来显示固定的问题。

1

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

默认情况下,Modern UI应用程序的沙盒特性意味着它只能显式访问它自己的本地文件夹(想象它像隔离存储)。为了访问其他位置,清单文件必须声明它需要访问这些其他位置。可用的位置是相当有限的。

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

+0

文件夹(Windows.Storage.StorageFolder):Atr:Dirrectory,显示类型:文件夹..你还想知道什么?在这个文件夹中,我不仅要保存图像,而且要保存pdf和其他文件。 – jimpanzer 2013-05-13 11:51:29

+1

@jimpanzer在Win8中,例如,你想要访问文档文件夹,那么你需要在应用程序清单中明确地这样说:http://msdn.microsoft.com/en-us/library/windows/apps /hh464936.aspx – 2013-05-13 11:54:08

相关问题