Share via


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

如果以CommonFolderQuery為基礎建立QueryOptions物件,則取得用來將檔案分組到資料夾的時間單位。 例如,如果使用 CommonFolderQuery.GroupByYear 來建立 QueryOptions 物件,則此屬性的值會是 DateStackOption.Year

FileTypeFilter

取得用來篩選搜尋結果的副檔名清單。 如果清單是空的,結果會包含所有檔案類型。

FolderDepth

指出搜尋查詢是否應該產生資料夾內容的淺層檢視,還是所有檔案和子資料夾的深層遞迴檢視。

GroupPropertyName

如果使用CommonFolderQuery建立QueryOptions物件,則取得用來將查詢結果分組的屬性名稱。 例如,如果使用 CommonFolderQuery.GroupByYear 來建立 QueryOptions 物件,則此屬性的值會是 System.ItemDate

IndexerOption

取得或設定值,這個值會指定是否使用系統索引或檔案系統來擷取查詢結果。 索引子可以更快擷取結果,但不適用於所有檔案位置。

Language

取得或設定 Internet Engineering Task Force (IETF) 語言標記, (BCP47 標準) ,以識別與查詢相關聯的語言。 這會決定系統用來將查詢分成個別搜尋權杖的語言特定演算法。

SortOrder

取得 SortEntry 結構的清單,指定如何在查詢結果中排序內容 (,例如檔案和子資料夾) 。 使用此清單自訂查詢結果的排序方式。

StorageProviderIdFilter

取得儲存體提供者識別碼的篩選準則。

UserSearchFilter

取得或設定使用者定義的進階查詢語法 (AQS) 字串,以依關鍵字或屬性篩選檔案。 這個屬性會與 ApplicationSearchFilter 結合,以建立查詢的搜尋篩選。

方法

LoadFromString(String)

使用SaveToString方法所建立的字串所指定的搜尋參數,初始化QueryOptions類別的目前實例。

SaveToString()

呼叫LoadFromString,將QueryOptions物件的值轉換成字串,以用來初始化QueryOptions物件的值。

SetPropertyPrefetch(PropertyPrefetchOptions, IIterable<String>)

指定在查詢執行 (時,系統應該針對查詢結果集中的所有專案預先載入的屬性,而不是逐一依大小寫擷取它們) 。 如果指定許多屬性,查詢可能需要較長的時間才能執行,但查詢結果的後續屬性擷取速度會更快。

SetThumbnailPrefetch(ThumbnailMode, UInt32, ThumbnailOptions)

指定系統在 (存取專案時,應該立即開始載入的縮圖類型和大小,而不是依大小寫方式擷取縮圖) 。 這會使用更多資源,但可加快查詢結果的縮圖擷取速度。

適用於

另請參閱