0

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

var 文件夹 = KnownFolders.DocumentsLibrary;

var items = await folder.GetItemsAsync();

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

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

4

1 回答 1

2

我认为没有直接的方法可以做到这一点。根据这篇文章,它可以用图片、音乐和视频库来完成,但不能用文档库来完成

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

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

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

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

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

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

folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(token);
var items = await folder.GetItemsAsync();
于 2013-03-13T06:17:31.263 回答