So wird's gemacht: Abrufen von Dateigruppen mithilfe von Abfragen (Apps im Metro-Stil mit JavaScript und HTML)
[Diese Dokumentation ist vorläufig. Änderungen vorbehalten.]
Verwenden Sie Abfragen, um Gruppen von Dateien auf Basis von Kriterien, die Sie angeben, von einem bestimmten Speicherort (Ordner, Dateigruppe, Bibliothek, Gerät oder Netzwerkadresse) abzurufen.
Voraussetzungen
Abrufen des enthaltenden Ordners
Wenn Sie eine Liste des Inhalts eines bestimmten Ordners abrufen möchten, müssen Sie zuerst den Ordner abrufen.
Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele wird die Bildbibliothek abgerufen:
var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;
Im vorherigen Beispiel dient KnownFolders zum Abrufen der Bildbibliothek (als StorageFolder-Objekt). Sie können KnownFolders-Eigenschaften verwenden, um Ordner abzurufen, die eine Reihe von Benutzerressourcen wie Bibliotheken, Geräte oder Netzwerkadressen darstellen.
Wichtig Wenn Sie eine KnownFolders-Eigenschaft zum Zugreifen auf eine Bibliothek, ein Gerät oder eine Netzwerkadresse verwenden möchten, muss die App über die entsprechende Funktion im App-Manifest verfügen. Weitere Informationen zu Funktionen finden Sie unter Zugreifen auf Benutzerressourcen mit der Windows-Runtime und Schnellstart: Arbeiten mit Dateien.
Erstellen einer Ordnerabfrage zum Organisieren von Dateien nach bestimmten Kriterien
Wenn Sie eine Ordnerabfrage von einem Ordner aus erstellen, werden die Dateien und Unterordner in diesem Ordner nach Ihren Kriterien in Gruppen organisiert. Die resultierenden Gruppen sind virtuelle Ordner, die wie ein Ordner im Dateisystem funktionieren. Sie können darin enthaltene Dateien nach Bedarf abrufen und verarbeiten.
Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele wird eine Ordnerabfrage erstellt, die Bilder in der Bildbibliothek nach dem Datum der Erstellung/Aufnahme gruppiert:
var query = picturesLibrary.createFolderQuery(Windows.Storage.Search.CommonFolderQuery.groupByMonth);
Im vorherigen Beispiel wurde gezeigt, dass Sie createFolderQuery(query) für Ihren Ordner aufrufen können, um eine Ordnerabfrage zu erstellen (ein StorageFolderQueryResult-Objekt). Sie dient dazu, die Dateien in dem Ordner und seinen Unterordnern basierend auf dem von Ihnen angegebenen CommonFolderQuery-Wert in virtuellen Ordnern zu organisieren. In dem Beispiel werden die Bilddateien im Ordner picturesLibrary
nach dem Monat (CommonFolderQuery.groupByMonth) gruppiert, in dem die Bilder aufgenommen oder erstellt wurden.
Ordnerabfragen können Sie zudem durch Aufrufen von createFolderQuery() oder createFolderQueryWithOptions erstellen.
Abrufen der Liste virtueller Ordner aus der Abfrage
Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele wird die Liste der virtuellen Ordner mit query
abgerufen:
query.getFoldersAsync().then(function (monthList) {
monthList.forEach(function (month) {
Im vorherigen Beispiel wird gezeigt, wie Sie getFoldersAsync() für Ihre Ordnerabfrage aufrufen können, um eine Liste Ihrer virtuellen Ordner abzurufen. Verwenden Sie then zur Definition einer Funktion, die Ihre Liste verarbeitet. In unserem Beispiel gibt die Abfrage eine Liste virtueller Ordner zurück, die Monate darstellen (monthList
), und wir verarbeiten unsere Liste durch Aufrufen von monthList.forEach
und Definieren einer Funktion zur Verarbeitung jedes einzelnenmonth
-Ordners.
Abrufen der Liste der Dateien im virtuellen Ordner
Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele wird der month
-Ordner zum Abrufen der Liste von Bildern verwendet, die in dem betreffenden Monat aufgenommen oder erstellt wurden:
var tempMonthName = month.name;
month.getFilesAsync().then(function (files) {
Tipp Wenn Sie Informationen über Ihren virtuellen Ordner (month
) speichern möchten, um sie später zu verwenden, können Sie dies tun. Im vorherigen Beispiel wird der Name unseres virtuellen Ordners (month
.name) in tempMonthName
gespeichert, damit wir ihn bei der Verarbeitung unserer Bilderliste (files
) verwenden können.
Verwenden Sie then, um eine Funktion zu definieren, die die Liste der empfangenen Dateien verarbeitet. Weitere Informationen über das Arbeiten mit Dateilisten finden Sie unter Abrufen von Datei- und Ordnerlisten aus einem Ordner, oder laden Sie das FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele herunter.
Vollständiges Beispiel
// Get folder
var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;
// Create query
var query = picturesLibrary.createFolderQuery(Windows.Storage.Search.CommonFolderQuery.groupByMonth);
// Get virtual folders from query
query.getFoldersAsync().then(function (monthList) {
monthList.forEach(function (month) {
var tempMonthName = month.name;
// Get files from virtual folder
month.getFilesAsync().then(function (files) {
// Then perform tasks with retrieved files
});
});
});
Verwandte Themen
Zugreifen auf Daten in Dateien
Abrufen von Datei- und Ordnerlisten aus einem Ordner
Schnellstart: Arbeiten mit Dateien
Zugreifen auf Benutzerressourcen mit Windows Runtime
Homepage für Metro-App-Beispiele
Nachschlagewerk
Windows.Storage.KnownFolders class
Windows.Storage.StorageFile class
Windows.Storage.StorageFolder class