根据this文章,我们只对“下载”文件夹具有写入权限 - 这似乎得到了我发现的支持。在WinRT中有什么方法吗?我希望能够遍历下载文件夹中的文件。
答案 0 :(得分:5)
Here是关于这个主题的官方文件:
所有应用都可以在“下载”文件夹中创建文件和文件夹 访问他们创建的文件。但是应用无法访问中的文件 他们没有创建的下载文件夹。
当您的应用在“下载”文件夹中创建文件时,其他应用无法创建 干扰或访问您的文件,除非用户明确给出 其他应用访问。用户可以授予您另一个应用访问权限 通过从文件选择器中选择文件来获取文件。您的应用也可以使用 文件选择器可以访问Downloads文件夹中的文件 它没有创造。
所以,不,没有用户干预就无法枚举或遍历文件夹中的所有文件。但是,如果您让用户选择带有FolderPicker
的文件夹:
var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();
foreach (var file in await folder.GetFilesAsync())
{
// do something with each file
}
获得对StorageFolder
的引用后,您甚至可以将其存储在MostRecentlyUsedList
中,以便将来可以访问它而无需用户再次选择它:
var token = StorageApplicationPermissions.MostRecentlyUsedList.Add(folder);
您只需存储返回的令牌即可再次访问它:
var folder = await StorageApplicationPermissions.MostRecentlyUsedList.GetFolderAsync(token);