C# C Windows应用商店背景下载程序到可移动存储

C# C Windows应用商店背景下载程序到可移动存储,c#,windows-runtime,C#,Windows Runtime,我正在开发一款将在所有Windows 8设备上运行的应用程序,RT支持是必须的,我正在添加一些脱机功能,但我不知道如何下载到可移动存储设备,如USB驱动器或Surface RT,micro SD卡。理想情况下,我希望能够让用户指定目录,但它可能会下载数百个文件,因此只能指定一次,而不是每个文件指定一次。我还希望避免要求用户手动配置库 我已经找到了很多关于如何下载到各种库的文章,但是这些文章都会下载到内部存储,因此在表面RT上的空间非常有限。如何让用户指定大量文件的下载位置和/或下载到可移动存储设

我正在开发一款将在所有Windows 8设备上运行的应用程序,RT支持是必须的,我正在添加一些脱机功能,但我不知道如何下载到可移动存储设备,如USB驱动器或Surface RT,micro SD卡。理想情况下,我希望能够让用户指定目录,但它可能会下载数百个文件,因此只能指定一次,而不是每个文件指定一次。我还希望避免要求用户手动配置库

我已经找到了很多关于如何下载到各种库的文章,但是这些文章都会下载到内部存储,因此在表面RT上的空间非常有限。如何让用户指定大量文件的下载位置和/或下载到可移动存储设备

一个非常巧妙的解决方案是在用户选择的位置以编程方式创建一个库,以便用户可以选择是在本地系统上还是在可移动设备上


我感谢你的建议。

你应该好好利用。它允许您重用用户以前授予您访问权限的文件和文件夹

首先,用户将使用以下选项选择目标文件夹:

然后,您将文件夹添加到FutureAccessList,并获取一个字符串令牌,您可以存储该令牌以供以后使用,例如:

当您要下载文件时,首先从FutureAccessList获取文件夹并创建目标文件:

var folder = await StorageApplicationPermissions.FutureAccessList
                                                .GetFolderAsync(token);
var file = await folder.CreateFileAsync(filename);
使用这些数据,您可以创建一个:

从这里开始,像下载到任何其他位置一样继续下载,开始下载,监视进度

var token = StorageApplicationPermissions.FutureAccessList.Add(folder);
var folder = await StorageApplicationPermissions.FutureAccessList
                                                .GetFolderAsync(token);
var file = await folder.CreateFileAsync(filename);
var downloader = new BackgroundDownloader();
var download = downloader.CreateDownload(uri, file);