QueryOptions 类

定义

指定用于枚举存储文件夹内容的搜索查询的参数。

public ref class QueryOptions sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.Storage.Search.IQueryOptionsFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class QueryOptions final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(Windows.Storage.Search.IQueryOptionsFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class QueryOptions final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Storage.Search.IQueryOptionsFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class QueryOptions
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Storage.Search.IQueryOptionsFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class QueryOptions
function QueryOptions(query, fileTypeFilter)
Public NotInheritable Class QueryOptions
继承
Object Platform::Object IInspectable QueryOptions
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

示例

此示例演示如何使用 QueryOptions 查询某个位置中的文件。

// Set query options with filter and sort order for results
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".jpg");
fileTypeFilter.Add(".png");
fileTypeFilter.Add(".bmp");
fileTypeFilter.Add(".gif");
var queryOptions = new QueryOptions(CommonFileQuery.OrderByName, fileTypeFilter);

// Create query and retrieve files
var query = KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(queryOptions);
IReadOnlyList<StorageFile> fileList = await query.GetFilesAsync();
// Process results
foreach (StorageFile file in fileList)
{
    // Process file
}

此示例演示如何使用由系统索引支持的文件查询来检索可能依赖于另一个应用的属性处理程序 (如 标题 文档属性) 。

try
{
    // Create index backed file query and get results
    List<string> fileTypeFilter = new List<string>();
    fileTypeFilter.Add(".png");
    QueryOptions queryOptions = new QueryOptions(Windows.Storage.Search.CommonFileQuery.OrderByName, fileTypeFilter);
    queryOptions.IndexerOption = IndexerOption.OnlyUseIndexer;
    StorageFileQueryResult queryResult = Windows.Storage.KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(queryOptions);
    var files = await queryResult.GetFilesAsync();

    // Process resulting files
    if (files.Count == 0)
    {
        // Perform tasks to handle no files found
    }
    else
    {
        // Access properties for each file
        foreach (StorageFile file in files)
        {
            var documentProperties = await file.Properties.GetDocumentPropertiesAsync();
            // Perform tasks with document properties
            String title = documentProperties.Title;
        }
    }
}
// Handle errors with catch blocks
catch (FileNotFoundException)
{
 // For example, handle a file not found error
}

注解

可以为有权访问的任何文件夹创建一个文件查询,并将其作为 StorageFolder 获取。

可以使用 QueryOptions 和 CreateFileQueryWithOptions 创建索引支持的文件查询,以便获取依赖于其他应用的属性处理程序的属性。

构造函数

QueryOptions()

创建用于枚举存储项的 QueryOptions 类的实例,并使用以下默认设置对其进行初始化: QueryOptions.FolderDepth 获取 FolderDepth.ShallowQueryOptions.IndexerOption 获取 IndexerOption.DoNotUseIndexer

具有上述选项 的 QueryOptions 对象将提供某个位置中文件和文件夹的浅表、逐个文件夹枚举。 默认情况下,文件夹在文件之前枚举,文件和文件夹按名称按字母顺序排列。

QueryOptions(CommonFileQuery, IIterable<String>)

创建用于枚举文件的 QueryOptions 类的实例,并使用指定的 CommonFileQuery 提供的值和用于确定要包含在查询结果中的文件的可选文件类型筛选器对其进行初始化。

QueryOptions(CommonFolderQuery)

创建用于枚举子文件夹的 QueryOptions 类的实例,并使用基于指定的 CommonFolderQuery 的值对其进行初始化。

属性

ApplicationSearchFilter

获取或设置应用程序定义的高级查询语法 (AQS) 字符串,用于按关键字或属性筛选文件。 此属性与 UserSearchFilter 结合使用以创建查询的搜索筛选器。

DateStackOption

如果 QueryOptions 对象是使用基于日期的 CommonFolderQuery 创建的,则获取用于将文件分组到文件夹中的时间单位。 例如,如果使用 CommonFolderQuery.GroupByYear 创建 QueryOptions 对象,则此属性的值为 DateStackOption.Year

FileTypeFilter

获取用于筛选搜索结果的文件扩展名的列表。 如果列表为空,则结果包括所有文件类型。

FolderDepth

指示搜索查询是应生成文件夹内容的浅视图,还是生成所有文件和子文件夹的深层递归视图。

GroupPropertyName

如果 QueryOptions 对象是使用 CommonFolderQuery 创建的,则获取用于对查询结果进行分组的属性的名称。 例如,如果使用 CommonFolderQuery.GroupByYear 创建 QueryOptions 对象,则此属性的值为 System.ItemDate

IndexerOption

获取或设置一个值,该值指定是使用系统索引还是文件系统来检索查询结果。 索引器可以更快地检索结果,但并非所有文件位置都可用。

Language

获取或设置 Internet 工程任务组 (IETF) 语言标记 (BCP47 标准) ,该标记标识与查询关联的语言。 这决定了系统用于将查询分解为单个搜索标记的特定于语言的算法。

SortOrder

获取 SortEntry 结构的列表,这些结构指定如何对查询结果中) 的文件和子文件夹等内容 (排序。 使用此列表可自定义查询结果的排序方式。

StorageProviderIdFilter

获取存储提供程序标识符的筛选器。

UserSearchFilter

获取或设置用户定义的高级查询语法 (AQS) 字符串,用于按关键字或属性筛选文件。 此属性与 ApplicationSearchFilter 结合使用以创建查询的搜索筛选器。

方法

LoadFromString(String)

使用由 SaveToString 方法创建的字符串指定的搜索参数初始化 QueryOptions 类的当前实例。

SaveToString()

QueryOptions 对象的值转换为字符串,该字符串可用于通过调用 LoadFromString 来初始化 QueryOptions 对象的值。

SetPropertyPrefetch(PropertyPrefetchOptions, IIterable<String>)

指定在 (执行查询时,系统应为查询结果集中的所有项提前加载的属性,而不是) 逐个检索它们。 如果指定了多个属性,则执行查询可能需要更长的时间,但对查询结果的后续属性检索会更快。

SetThumbnailPrefetch(ThumbnailMode, UInt32, ThumbnailOptions)

指定当 (访问项时,系统应立即开始加载的缩略图的类型和大小,而不是) 逐个检索它们。 这会使用更多资源,但可以更快地检索查询结果的缩略图。

适用于

另请参阅