Windows 8 访问WinRT中的Windows下载文件夹

Windows 8 访问WinRT中的Windows下载文件夹,windows-8,windows-runtime,filesystems,Windows 8,Windows Runtime,Filesystems,根据这篇文章,我们只有对下载文件夹的写访问权——这似乎得到了我发现的支持。在温特有没有办法解决这个问题?我希望能够遍历下载文件夹中的文件。这是关于该主题的官方文档: 所有应用都可以在下载文件夹中创建文件和文件夹,并且可以 访问他们创建的文件。但应用程序无法访问数据库中的文件 下载他们没有创建的文件夹 当您的应用程序在下载文件夹中创建文件时,其他应用程序无法执行此操作 干扰或访问您的文件,除非用户明确给出 另一个应用程序无法访问。用户可以让其他应用访问您的 通过从文件选择器中选择文件来创建文件。你

根据这篇文章,我们只有对下载文件夹的写访问权——这似乎得到了我发现的支持。在温特有没有办法解决这个问题?我希望能够遍历下载文件夹中的文件。

这是关于该主题的官方文档:

所有应用都可以在下载文件夹中创建文件和文件夹,并且可以 访问他们创建的文件。但应用程序无法访问数据库中的文件 下载他们没有创建的文件夹

当您的应用程序在下载文件夹中创建文件时,其他应用程序无法执行此操作 干扰或访问您的文件,除非用户明确给出 另一个应用程序无法访问。用户可以让其他应用访问您的 通过从文件选择器中选择文件来创建文件。你的应用程序也可以使用 用于访问下载文件夹中文件的文件选择器 这不是它创造的

因此,否:没有用户干预,无法枚举或迭代文件夹中的所有文件。但是,如果您让用户使用
文件夹选择器选择文件夹,则可以使用它:

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);
您只需存储返回的令牌即可再次访问它:

var token = StorageApplicationPermissions.MostRecentlyUsedList.Add(folder);
var folder = await StorageApplicationPermissions.MostRecentlyUsedList.GetFolderAsync(token);
这是关于该主题的官方文件:

所有应用都可以在下载文件夹中创建文件和文件夹,并且可以 访问他们创建的文件。但应用程序无法访问数据库中的文件 下载他们没有创建的文件夹

当您的应用程序在下载文件夹中创建文件时,其他应用程序无法执行此操作 干扰或访问您的文件,除非用户明确给出 另一个应用程序无法访问。用户可以让其他应用访问您的 通过从文件选择器中选择文件来创建文件。你的应用程序也可以使用 用于访问下载文件夹中文件的文件选择器 这不是它创造的

因此,否:没有用户干预,无法枚举或迭代文件夹中的所有文件。但是,如果您让用户使用
文件夹选择器选择文件夹,则可以使用它:

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);
您只需存储返回的令牌即可再次访问它:

var token = StorageApplicationPermissions.MostRecentlyUsedList.Add(folder);
var folder = await StorageApplicationPermissions.MostRecentlyUsedList.GetFolderAsync(token);