StorageFolder.CreateFileQueryWithOptions(QueryOptions) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein Abfrageergebnisobjekt ab, das die Dateien im aktuellen Ordner und optional in den Unterordnern des aktuellen Ordners enthält. Die Ergebnisse basieren auf den angegebenen QueryOptions.
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
Die Kriterien, die auf die Abfrage angewendet werden.
Gibt zurück
Ein Abfrageergebnisobjekt, das die Dateien im aktuellen Ordner und optional in den Unterordnern des aktuellen Ordners enthält, gefiltert und basierend auf den angegebenen QueryOptions sortiert. Rufen Sie die GetFilesAsync-Methode des Abfrageergebnisses auf, um die flache Dateiliste abzurufen, sortiert nach queryOptions. Diese Methode gibt eine Liste vom Typ IReadOnlyList<StorageFile> zurück. Jede Datei wird durch ein Element vom Typ StorageFile dargestellt.
Implementiert
Ausnahmen
Sie haben einen anderen Wert als DefaultQuery aus der CommonFileQuery-Enumeration für einen Ordner angegeben, der kein Bibliotheksordner ist. Überprüfen Sie den Wert der Abfrage.
Beispiele
Im folgenden Beispiel wird gezeigt, wie sie die JPG-Dateien im Ordner Pictures des Benutzers und dessen Unterordnern abrufen, sortiert nach Datum, indem Sie die CreateFileQueryWithOptions(QueryOptions)
-Methode aufrufen. Diese Abfrage ist eine umfassende Abfrage, da der Ordner ein Bibliotheksordner ist und ein anderer Wert als DefaultQuery aus der CommonFileQuery-Enumeration angegeben wird.
Bevor Sie das folgende Beispiel ausführen, aktivieren Sie die Funktion Bilderbibliothek in der App-Manifestdatei.
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());
}
});
Hinweise
In den folgenden Fällen handelt es sich bei dieser Abfrage um eine flache Abfrage, die nur Dateien im aktuellen Ordner zurückgibt:
- Standardverhalten dieser Methode, wenn keine der folgenden Optionen angegeben ist. Oder:
- Geben Sie DefaultQuery als Wert von CommonFileQuery an, wenn Sie das QueryOptions-Objekt instanziieren . Oder:
- Geben Sie Shallow als Wert der FolderDepth-Eigenschaft des QueryOptions-Objekts an.
In den folgenden Fällen handelt es sich bei dieser Abfrage um eine ausführliche Abfrage, die Dateien aus dem aktuellen Ordner und seinen Unterordnern zurückgibt:
- Geben Sie für einen Bibliotheksordner einen anderen Wert als DefaultQuery als Wert von CommonFileQuery an, wenn Sie das QueryOptions-Objekt instanziieren . Oder:
- Geben Sie für jeden Ordner Deep als Wert der FolderDepth-Eigenschaft der QueryOptions-Eigenschaft an.
Tipp
Einige der Werte aus der CommonFileQuery-Enumeration können nur mit einem Bibliotheksordner (z. B. der Bildbibliothek) oder dem Ordner Heimnetzgruppe verwendet werden. Trotz des oben beschriebenen Wortlauts der ArgumentException können Sie die Optionen OrderByName und OrderBySearchRank (zusätzlich zur Option DefaultQuery ) mit einem Ordner verwenden, der kein Bibliotheksordner ist.
Eine Liste der Methoden, die flache Abfragen und tiefe Abfragen identifizieren, finden Sie in den Anmerkungen im Thema GetFilesAsync.
Um zu überprüfen, ob die QueryOptions , die Sie angeben möchten, für den aktuellen Ordner verfügbar sind, rufen Sie die AreQueryOptionsSupported-Methode des Ordners auf. Um zu überprüfen, ob eine bestimmte CommonFileQuery verfügbar ist, rufen Sie die IsCommonFileQuerySupported-Methode des Ordners auf.
Sie können auch eine Liste der Dateien im aktuellen Ordner asynchron abrufen, indem Sie eine der GetFilesAsync-Methoden aufrufen.
Um ein Abfrageergebnisobjekt abzurufen, das die Dateien im aktuellen Ordner enthält, ohne ein QueryOptions-Objekt zu konfigurieren, rufen Sie eine der CreateFileQuery-Methoden auf.
Um Elemente abzurufen, die Dateien oder Ordner sind, rufen Sie die CreateItemQueryWithOptions-Methode auf.
Hinweis
Für Windows Server 2012 müssen Sie Indexerkomponenten installieren, um einige QueryOptions zu verwenden, da Indexerkomponenten standardmäßig nicht installiert sind.