Windows runtime 使用GetItemsAsync检索所有文件,而无需指定文件类型

Windows runtime 使用GetItemsAsync检索所有文件,而无需指定文件类型,windows-runtime,Windows Runtime,我正在尝试使用以下代码从WinRT设备获取文件列表: var folder=KnownFolders.DocumentsLibrary var items=await folder.GetItemsAsync() 这将返回文件夹和文件的列表。 问题是,文件列表只包含我添加到Package.appxmanifest的扩展名的文件 有没有办法检索所有文件?像* 我认为没有直接的方法。根据它可以做的图片,音乐和视频库,但不能与文件库 您必须将文件类型关联添加到应用程序清单中,以声明 您的应用程序可以在

我正在尝试使用以下代码从WinRT设备获取文件列表:

var folder=KnownFolders.DocumentsLibrary

var items=await folder.GetItemsAsync()

这将返回文件夹和文件的列表。 问题是,文件列表只包含我添加到Package.appxmanifest的扩展名的文件


有没有办法检索所有文件?像*

我认为没有直接的方法。根据它可以做的图片,音乐和视频库,但不能与文件库

您必须将文件类型关联添加到应用程序清单中,以声明 您的应用程序可以在此位置访问的特定文件类型

如果您让用户使用
FolderPicker
选择文件夹,您将可以访问所有项目,但:

var picker = new FolderPicker();
picker.FileTypeFilter.Add(".txt");
var folder = await picker.PickSingleFolderAsync();
var items = await folder.GetItemsAsync();
用户只需做一次就足够了。然后,您可以将文件夹添加到并存储它返回的令牌:

var token = StorageApplicationPermissions.FutureAccessList.Add(folder);
当用户下次运行应用程序时,您可以使用令牌再次访问文件夹:

folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(token);
var items = await folder.GetItemsAsync();

“有一种方法——地铁指挥官会这么做。”菲利普斯卡昆我检查了地铁指挥官,但实际上没有。它提供了对音乐、图片和视频库的直接访问,需要用户手动添加磁盘并将其存储到
FutureAccessList
,并且允许用户使用
FolderPicker
浏览到特定文件夹。这是一个可以接受的回答。非常感谢Damir和Filip。你们俩把我带到了正确的方向。FutureAccessList是持久的,您只需添加一次位置。我现在可以完全进入我的表面了!