So wird's gemacht: Indizieren lokaler 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]
Sie können die lokal gespeicherten Daten für Ihre App mithilfe des Windows-Suchdiensts (WSS, Windows Search Service) indizieren.
Wenn in Ihrer App Dateien wie Dokumente, E-Mail oder Medien (Fotos, Musik, Videos usw.) verwaltet werden, gilt die zentrale Anforderung, dass die Inhalte oder Eigenschaften der Dateien strukturell indiziert werden müssen, damit Benutzer die Daten auf schnelle und effiziente Weise verwalten und abrufen können. Sie müssen den Indexer nicht innerhalb Ihrer App erstellen. Für Sie als App-Entwickler gibt es eine bequeme und sichere Möglichkeit: Sie können einfach WSS aktivieren, um Ihre App-Daten zu indizieren.
Im Folgenden finden Sie die Hauptvorteile bei der Verwendung des WSS zum Indizieren der App-Daten:
- WSS unterstützt eine Indizierung der vollständigen Textinhalte der gebräuchlichsten Dokumenttypen. Darüber hinaus bietet der WSS Unterstützung zum Indizieren von Dateieigenschaften.
- Durch einen integrierten Vertrag für "Suche" sowie Datei-APIs können die indizierten Daten einfach abgerufen und erneut verwendet werden.
- Die Windows-Suche berücksichtigt die Sicherheitseinstellungen des Dateisystems, durch die die indizierten App-Daten sicher im Windows-Indexer gespeichert werden.
Die Windows-Suche kann mit allen Windows Store-Apps verwendet werden. Dies gilt auch für in JavaScript, C#, C++ und VB.NET geschriebene Apps.
Aktivieren der Windows-Suche für Ihre App
Eine Indizierung der App-Daten mittels Windows-Suche ist einfach. Dazu müssen Sie im Ordner mit den App-Daten einen Ordner mit dem Namen indexed erstellen und die Inhalte, die indiziert werden sollen, in diesem Ordner speichern. Die Windows-Suche behandelt den Ordner „indexed“ genauso wie einen beliebigen anderen Indizierungsspeicherort auf der Festplatte. Dabei werden die Dateiinhalte oder -metadaten (Eigenschaften) in diesem Ordner und allen zugehörigen Unterordnern indiziert. Nachfolgend finden Sie eine Liste mit wichtigen Aspekten:
- Für den Ordner „indexed“ gelten die folgenden Richtlinien:
- Der Ordner „indexed“ muss unter dem Stammordner localFolder erstellt werden. Die Windows-Suche führt für die Inhalte in diesem Ordner eine tiefgreifende Indizierung durch. Dabei werden alle Dateien indiziert, die lokal in diesem Ordner oder in den zugehörigen Unterordnern (einschließlich aller Ebenen) gespeichert sind. Pro App darf nur ein Ordner „indexed“ verwendet werden.
- 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-/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 Windows-Suche indiziert nur die lokal gespeicherten Daten. Anders ausgedrückt: Nur die Dateien, die lokal im Ordner „indexed“ oder den zugehörigen Unterordnern gespeichert sind, werden indiziert.
- Der Ordner „indexed“ kann während der Installation nicht erstellt werden. Er kann nur während der App-Ausführung erstellt werden. Da die Windows-Suche je nach Umfang des Inhalts etwas Zeit in Anspruch nimmt, wird empfohlen, den Ordner „indexed“ bei der ersten App-Ausführung zu erstellen. Nachdem der Ordner „indexed“ erstellt wurde, indiziert die Windows-Suche die App-Inhalte automatisch. Wenn die Dateien oder Unterordner geändert (hinzugefügt, gelöscht oder aktualisiert) werden, plant die Windows-Suche automatisch einen Indizierungsprozess neu, und sie aktualisiert den Indexer mit den Änderungen. Beachten Sie, dass die Windows-Suche die CPU-Auslastung überwacht, um den Indizierungsprozess nach einem eigenen Zeitplan zu optimieren.
Sicherheit
WSS berücksichtigt die Sicherheitseinstellungen des Windows-Dateisystems, sodass die indizierten App-Daten sicher im Indexer gespeichert werden. Das gilt insbesondere für Folgendes:
- Bei mehreren Benutzerkonten auf dem gleichen PC: Windows Store-Apps werden pro Benutzerkonto installiert. Wenn mehrere Benutzer auf demselben PC die gleiche App verwenden, erstellt jede App-Instanz einen eigenen Ordner vom Typ "indexed" unter unterschiedlichen physischen Pfaden. Daher kann ein Benutzer nicht auf die indizierten Daten in anderen Konten zugreifen, wenn dieser Benutzer nicht über die erforderlichen Rechte für den Zugriff auf den physischen Pfad verfügt.
- Bei der Indizierung von App-Daten mehrerer Apps: Das Windows-Dateisystem lässt nicht zu, dass eine App direkt auf die Daten einer anderen App zugreift. Eine App erhält demnach keinen Zugriff auf die indizierten Daten einer anderen App.
Abrufen indizierter Inhalte
Nach der Indizierung der App-Daten kann die App die Daten über die Datei-API abrufen.