StorageFolder.CreateFileQueryWithOptions(QueryOptions) Metode

Definisi

Mendapatkan objek hasil kueri yang berisi file di folder saat ini dan, secara opsional, di subfolder folder saat ini. Hasilnya didasarkan pada QueryOptions yang ditentukan.

public:
 virtual StorageFileQueryResult ^ CreateFileQueryWithOptions(QueryOptions ^ queryOptions) = CreateFileQueryWithOptions;
StorageFileQueryResult CreateFileQueryWithOptions(QueryOptions const& queryOptions);
public StorageFileQueryResult CreateFileQueryWithOptions(QueryOptions queryOptions);
function createFileQueryWithOptions(queryOptions)
Public Function CreateFileQueryWithOptions (queryOptions As QueryOptions) As StorageFileQueryResult

Parameter

queryOptions
QueryOptions

Kriteria yang diterapkan ke kueri.

Mengembalikan

Objek hasil kueri yang berisi file di folder saat ini dan, secara opsional, di subfolder folder saat ini, difilter dan diurutkan berdasarkan QueryOptions yang ditentukan. Panggil metode GetFilesAsync dari hasil kueri untuk mendapatkan daftar datar file, diurutkan seperti yang ditentukan oleh queryOptions. Metode ini mengembalikan daftar jenis IReadOnlyList<StorageFile>. Setiap file diwakili oleh item jenis StorageFile.

Penerapan

Pengecualian

Anda menentukan nilai selain DefaultQuery dari enumerasi CommonFileQuery untuk folder yang bukan folder pustaka. Periksa nilai kueri.

Contoh

Contoh berikut menunjukkan cara mendapatkan file JPG di folder Gambar pengguna dan subfoldernya, diurutkan menurut tanggal, dengan memanggil CreateFileQueryWithOptions(QueryOptions) metode . Kueri ini adalah kueri mendalam karena folder adalah folder pustaka dan nilai selain DefaultQuery dari enumerasi CommonFileQuery ditentukan.

Sebelum Anda menjalankan contoh berikut, aktifkan kemampuan Pustaka Gambar dalam file manifes aplikasi.

using Windows.Storage;
using Windows.Storage.Search;
using System.Threading.Tasks;
using System.Diagnostics; // For writing results to Output window.

// Get the user's Pictures folder.
// Enable the corresponding capability in the app manifest file.
StorageFolder picturesFolder = KnownFolders.PicturesLibrary;

// Set options for file type and sort order.
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".jpg");
QueryOptions queryOptions = new QueryOptions(CommonFileQuery.OrderByDate, fileTypeFilter);

// Get the JPG files in the user's Pictures folder
// and its subfolders and sort them by date.
StorageFileQueryResult results = picturesFolder.CreateFileQueryWithOptions(queryOptions);

// Iterate over the results and print the list of files
// to the Visual Studio Output window.
IReadOnlyList<StorageFile> sortedFiles = await results.GetFilesAsync();
foreach (StorageFile item in sortedFiles)
{
    Debug.WriteLine(item.Name + ", " + item.DateCreated);
}
IAsyncAction MainPage::ExampleCoroutineAsync()
{
    // Get the users's Pictures folder.
    // Enable the Pictures Library capability in the app manifest file.
    Windows::Storage::StorageFolder picturesFolder{ Windows::Storage::KnownFolders::PicturesLibrary() };

    // Set options for file type and sort order.
    Windows::Storage::Search::QueryOptions queryOptions{ Windows::Storage::Search::CommonFileQuery::OrderByDate, { L".png" } };

    // Get the png files in the user's Pictures folder and its subfolders, sorted by date.
    Windows::Storage::Search::StorageFileQueryResult results{ picturesFolder.CreateFileQueryWithOptions(queryOptions) };

    Windows::Foundation::Collections::IVectorView<Windows::Storage::StorageFile> filesInFolder{
        co_await results.GetFilesAsync() };

    // Iterate over the results, and print the list of files to the Visual Studio output window.
    for (StorageFile const& fileInFolder : filesInFolder)
    {
        std::wstring output{ fileInFolder.Name() };
        ::OutputDebugString(output.c_str());
    }
}
//Get the users's pictures folder
//Enable the corresponding capability in the app manifest file
StorageFolder^ picturesFolder = KnownFolders::PicturesLibrary;

//Set options for file type and sort order
Platform::Collections::Vector<String^>^ fileTypeFilter = ref new Platform::Collections::Vector<String^>();
fileTypeFilter->Append(".jpg");
QueryOptions^ queryOptions = ref new QueryOptions(Windows::Storage::Search::CommonFileQuery::OrderByDate, fileTypeFilter);

//Get the JPG files in the user's pictures folder 
//and its subfolders and sort them by date
StorageFileQueryResult^ results = picturesFolder->CreateFileQueryWithOptions(queryOptions);

create_task(results->GetFilesAsync()).then([=](IVectorView<StorageFile^>^ filesInFolder) 
{
    //Iterate over the results and print the list of files
    // to the visual studio output window
    for (auto it = filesInFolder->First(); it->HasCurrent; it->MoveNext())
    {
             StorageFile^ file = it->Current;
             String^ output = file->Name + "\n";
             OutputDebugString(output->Begin());
    }
});

Keterangan

Dalam kasus berikut, kueri ini adalah kueri dangkal yang hanya mengembalikan file di folder saat ini:

Dalam kasus berikut, kueri ini adalah kueri mendalam yang mengembalikan file dari folder saat ini dan dari subfoldernya:

Tip

Beberapa nilai dari enumerasi CommonFileQuery hanya dapat digunakan dengan folder pustaka (seperti pustaka Gambar) atau folder Grup Rumah. Terlepas dari kata-kata ArgumentException yang dijelaskan di atas, Anda dapat menggunakan opsi OrderByName dan OrderBySearchRank (selain opsi DefaultQuery ) dengan folder yang bukan folder pustaka.

Untuk daftar metode yang mengidentifikasi kueri dangkal dan kueri mendalam, lihat Keterangan dalam topik GetFilesAsync.

Untuk memeriksa apakah QueryOptions yang ingin Anda tentukan tersedia untuk folder saat ini, panggil metode AreQueryOptionsSupported folder. Untuk memeriksa apakah CommonFileQuery tertentu tersedia, panggil metode IsCommonFileQuerySupported folder.

Anda juga bisa mendapatkan daftar file di folder saat ini secara asinkron dengan memanggil salah satu metode GetFilesAsync .

Untuk mendapatkan objek hasil kueri yang berisi file di folder saat ini tanpa mengonfigurasi objek QueryOptions , panggil salah satu metode CreateFileQuery .

Untuk mendapatkan item yang merupakan file atau folder, panggil metode CreateItemQueryWithOptions .

Catatan

Untuk Windows Server 2012, Anda harus menginstal komponen pengindeks untuk menggunakan beberapa QueryOptions karena komponen pengindeks tidak diinstal secara default.

Berlaku untuk

Lihat juga