您应该利用FutureAccessList
. 它允许您重复使用用户之前授予您访问权限的文件和文件夹。
首先,用户将使用以下命令选择目标文件夹FolderPicker
:
var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();
然后,您将文件夹添加到FutureAccessList
并取回一个字符串令牌,您可以将其存储以供以后使用(例如 to ApplicationData.LocalSettings
):
var token = StorageApplicationPermissions.FutureAccessList.Add(folder);
当您要下载文件时,首先从其中获取文件夹FutureAccessList
并创建目标文件:
var folder = await StorageApplicationPermissions.FutureAccessList
.GetFolderAsync(token);
var file = await folder.CreateFileAsync(filename);
使用该数据,您可以创建一个DownloadOperation
:
var downloader = new BackgroundDownloader();
var download = downloader.CreateDownload(uri, file);
从这里开始,就像您正在下载到任何其他位置一样(开始下载,监控进度......)。