Durchführen von umfassenden Abfragen für lokale App-Daten
[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]
Erfahren Sie, wie die Datei-APIs im Windows.Storage-Namespace von einer App verwendet werden können, um umfassende Abfragen für Dateien in den lokal gespeicherten Daten der App durchzuführen.
Windows Store-Apps können die Datei-APIs zum Durchführen umfassender Abfragen für Inhalte verwenden, die in Benutzerbibliotheken gespeichert sind. Dies ist besonders hilfreich für Apps, mit denen umfangreicher Inhalt wie Dokumente, E-Mails oder Medien verwaltet wird. Zu Medien zählen Fotos, Musik und Videos. Sie können diese Abfragen verwenden, um Funktionen wie die Volltextsuche und die auf Abfragen basierende Filterung von in Dateien gespeicherten Metadaten hinzuzufügen.
Wissenswertes
Technologien
Voraussetzungen
- Sie verwenden den Windows-Suchdienst, um Dateien in den lokal gespeicherten Daten einer App zu indizieren.
Anweisungen
Schritt 1: Aktivieren von umfassenden Abfragen für App-Daten
Um umfassende Abfragen für Dateien bereitzustellen, verwenden Sie den Windows-Suchdienst zum Indizieren dieser Dateien. In der Regel sind Dateien in den lokal gespeicherten Daten einer App nicht indiziert. Das liegt daran, dass für die Indizierung Leistungsaufwand erforderlich ist, der unnötig ist, wenn die App keine Funktion für umfassende Abfragen benötigt.
Um die Indizierung von Dateien innerhalb von App-Daten zu ermöglichen, müssen Sie im Ordner mit den App-Daten einen Ordner mit dem Namen indexed erstellen. Speichern Sie anschließend den zu indizierenden Inhalt in diesem Ordner. Der Windows-Suchdienst indiziert die Dateiinhalte und Metadaten im Ordner indexed und allen Unterordnern.
So aktivieren Sie die Indizierung von Dateien innerhalb von App-Daten
Planen Sie den Ordner indexed, der unterhalb von localFolder angeordnet werden soll. Folgende Regeln sind in Bezug auf indexed und localFolder zu beachten:
Der Ordner indexed muss unter dem Stammordner localFolder erstellt werden.
Der Windows-Suchdienst führt für die Dateieigenschaften und -inhalte in diesem Ordner eine tiefgreifende Indizierung durch. Dies bedeutet, dass der Windows-Suchdienst alle Dateien indiziert, die lokal in diesem Ordner oder seinen Unterordnern (alle Ebenen) gespeichert sind.
Der Windows-Suchdienst unterstützt die Volltextindizierung und die Suche nach den Dateiformaten HTML, PDF, XML und RTF, Microsoft Office-Dateiformaten und anderen Dateiformaten. Informationen zu Filtern für den Windows-Suchdienst finden Sie unter Im Lieferumfang von Windows enthaltene Filterhandler.
Sie können pro App nur einen Ordner indexed verwenden.
Beim Ordnernamen indexed wird die Groß-/Kleinschreibung nicht beachtet.
Obwohl der Ordner mit den App-Daten in der Windows-Runtime-API den Namen localFolder hat, trägt er auf der physischen Festplatte den Namen LocalState. Verwenden Sie den folgenden Ordnerpfad, wenn Sie zu Testzwecken auf diesen Ordner zugreifen möchten:
%user%\ AppData\Local\Packages\%packageName%\LocalState
Die Ordnerstruktur unterhalb des Ordners indexed kann mehrere Ebenen umfassen. Für die Windows-API ist die Länge eines Datei- oder Ordnerpfads jedoch auf MAX_PATH beschränkt, also auf 260 Zeichen. Stellen Sie also sicher, dass die Dateien oder Ordner unterhalb des Ordners indexed diesen Grenzwert nicht überschreiten. Weitere Informationen zu MAX_PATH finden Sie unter Beschränkung der maximalen Länge von Pfaden.
Die spezielle Indizierung der lokal gespeicherten Daten ähnelt der Indizierung anderer Speicherorte durch den Windows-Suchdienst. Anders ausgedrückt: Nur die Dateien, die lokal im Ordner indexed oder seinen Unterordnern gespeichert sind, werden indiziert.
Erstellen Sie den Ordner indexed unterhalb von localFolder. Es ist nicht möglich, den Ordner indexed während der Installation zu erstellen. Die Erstellung ist nur während der Ausführung der App zulässig. Der folgende Codeausschnitt veranschaulicht, wie Sie den Ordner indexed bei der ersten Ausführung der App erstellen:
Windows.Storage.ApplicationData.current.localFolder.createFolderAsync("indexed", Windows.Storage.CreationCollisionOption.openIfExists).then( function (result) { //your code here });
Speichern Sie die Dateien und Ordner im Ordner indexed. Sie können StorageFolder oder IStorageFolder verwenden, um Dateien und Ordner zu speichern. Alle Dateien und Ordner, die Sie im Ordner indexed speichern, stehen dann für umfassende Abfragen mithilfe der Datei-APIs im Windows.Storage-Namespace zur Verfügung.
Schritt 2: Abrufen indizierter Inhalte
Nachdem der Windows-Suchdienst die App-Daten indiziert hat, kann die App die Daten über die Datei-APIs im Windows.Storage-Namespace abrufen. Verwenden Sie zum Durchführen von Abfragen z. B. CreateFileQuery oder CreateFolderQuery aus dem StorageFolder, der den Ordner indexed repräsentiert (bzw. aus einem beliebigen Unterordner des Ordners indexed).