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

时间:2013-03-12 21:00:40

标签: windows-runtime

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

var folder = KnownFolders.DocumentsLibrary;

var items = await folder.GetItemsAsync();

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

的扩展名的文件

有没有办法检索所有文件?喜欢 * 。 *?

1 个答案:

答案 0 :(得分:2)

我认为没有直接的方法可以做到这一点。根据{{​​3}},可以使用图片,音乐和视频库,但不能使用文档库

  

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

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

var picker = new FolderPicker();
picker.FileTypeFilter.Add(".txt");
var folder = await picker.PickSingleFolderAsync();
var items = await folder.GetItemsAsync();

用户只需执行一次就足够了。然后,您可以将文件夹添加到this article并存储它返回的令牌:

var token = StorageApplicationPermissions.FutureAccessList.Add(folder);

当用户下次运行应用程序时,您可以使用该令牌再次访问该文件夹:

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