如何在Windows Phone运行时中获取StorageFolder中的所有文件?

use*_*098 3 c# windows-runtime storagefolder windows-phone-8.1

我想在一个文件夹及其子文件夹中获取所有文件。但是像这样的简单查询:

var allFiles = await myFolder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByName);
Run Code Online (Sandbox Code Playgroud)

引发ArgumentException异常:

发生类型为“ System.ArgumentException”的第一次机会异常

附加信息:值不在预期范围内。

在我一一查询子文件夹之前,还有其他方法吗?

Ada*_*dam 5

您希望所有文件和文件夹都是根文件夹的后代,而不仅仅是浅枚举。对于大多数文件夹,枚举所有内容及其子文件夹内容的唯一方法是:

  1. 使用StorageFolder.GetFilesAsync()的文件
  2. 使用StorageFolder.GetFoldersAsync()检索所有子文件夹
  3. 递归地重复在步骤2中找到的所有子文件夹。

如果您正在寻找一种特定类型的媒体,则有一个解决方法。说明在这里。位置和CommonFile / FolderQuery选项的这几种组合将使设备对媒体进行深度搜索并返回排序的结果。