StorageFolder.CreateFileQueryWithOptions(QueryOptions) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
- Perilaku default metode ini jika tidak ada opsi berikut yang ditentukan. Atau:
- Tentukan DefaultQuery sebagai nilai CommonFileQuery saat Anda membuat instans objek QueryOptions . Atau:
- Tentukan Dangkal sebagai nilai properti FolderDepth dari objek QueryOptions .
Dalam kasus berikut, kueri ini adalah kueri mendalam yang mengembalikan file dari folder saat ini dan dari subfoldernya:
- Untuk folder pustaka, tentukan nilai selain DefaultQuery sebagai nilai CommonFileQuery saat Anda membuat instans objek QueryOptions . Atau:
- Untuk folder apa pun, tentukan Deep sebagai nilai properti FolderDepth dari QueryOptions.
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.