Comment indexer des données d’applications locales

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Vous pouvez indexer les données stockées localement de votre application via le service de recherche Windows (WSS, Windows Search Service).

Si votre application gère des fichiers comme des documents, du courrier ou du multimédia (photos, musique, vidéo, etc.), il est important d’indexer le contenu ou les propriétés des fichiers de manière structurelle, pour que les utilisateurs puissent gérer et récupérer les données de manière rapide et efficace. Il n’est pas nécessaire de créer l’indexeur dans votre application. Une possibilité pratique et sûre s’offre à vous en tant que développeur d’applications : vous pouvez simplement activer le service WSS pour indexer les données de votre application.

Principaux avantages de l’utilisation du service WSS pour indexer les données de votre application :

  • WSS prend en charge l’indexation de l’intégralité du contenu texte pour la plupart des types de documents courants. En outre, WSS indexe également les propriétés des fichiers.
  • Avec un contrat de recherche intégré et les API de fichier, les données indexées sont facilement récupérables et réutilisables.
  • La recherche Windows respecte les paramètres de sécurité du système de fichiers, qui stockent les données d’application indexée en toute sécurité dans l’indexeur Windows.

La recherche Windows fonctionne avec toutes les applications du Windows Store, notamment celles écrites en JavaScript, C#, C++ et VB.Net.

Activation de la recherche Windows pour votre application

L’indexation des données de l’application par la recherche Windows ne demande aucun effort. Vous devez créer un dossier nommé indexed sous le dossier des données de l’application et y stocker le contenu à indexer. La recherche Windows traite le dossier « indexed » comme tout autre emplacement d’indexation sur le disque dur. Elle indexe le contenu des fichiers ou leurs métadonnées (propriétés) de ce dossier et tous ses sous-dossiers. Voici une liste de considérations importantes :

  1. Le dossier « indexed » doit respecter les consignes suivantes :
    • Le dossier « indexed » doit être créé sous la racine localFolder. La recherche Windows indexe en profondeur le contenu de ce dossier. Tous les fichiers stockés localement dans ce dossier ou ses sous-dossiers (notamment tous les niveaux de sous-dossiers) seront indexés. Un seul dossier « indexed » par application est autorisé.
    • Le nom de dossier indexed ne différencie pas majuscules et minuscules.
    • Même si le dossier de données d’application est nommé localFolder dans l’API Windows Runtime, il porte le nom LocalState sur le disque dur physique. Pour accéder à ce dossier à des fins de test, utilisez le chemin d’accès suivant : %user%\ AppData\Local\Packages\%packageName%\LocalState
    • La structure des dossiers sous le dossier indexed peut être profonde, mais l’API Windows interdit les chemins d’accès à un fichier/dossier plus longs que MAX_PATH, soit 260 caractères. Vous devez donc vous assurer que les fichiers ou dossiers sous le dossier « indexed » ne dépassent pas cette limite. Pour plus d’informations sur MAX_PATH, voir Limitation de la longueur maximale du chemin d’accès.
  2. La recherche Windows indexe uniquement les données stockées localement. En d’autres termes, seuls les fichiers stockés localement dans le dossier « indexed » ou ses sous-dossiers sont indexés.
  3. Le dossier « indexed » ne peut pas être créé en cours d’installation, mais uniquement durant l’exécution de l’application. Comme la recherche Windows demande du temps, selon la taille du contenu, nous vous recommandons de créer le dossier « indexed » à la première exécution de l’application. Une fois que vous avez créé le dossier « indexed », la recherche Windows indexe automatiquement le contenu de l’application. Si les fichiers ou les sous-dossiers sont modifiés (ajoutés, supprimés ou mis à jour), la recherche Windows replanifie automatiquement un processus d’indexation et conserve l’indexeur à jour. Notez que la recherche Windows surveille l’utilisation du processeur pour optimiser le processus d’indexation selon sa propre planification.

Sécurité

WSS respecte les paramètres de sécurité du système de fichiers Windows, de sorte que les données d’application indexées sont stockées en toute sécurité dans l’indexeur. Plus particulièrement :

  • Quand il existe plusieurs comptes d’utilisateurs sur le même PC : Les applications du Windows Store sont installées par compte d’utilisateur. Si plusieurs utilisateurs du même PC emploient la même application, chaque instance de l’application crée son propre dossier « indexed » sous un autre chemin d’accès physique. Ainsi, un utilisateur ne peut pas accéder aux données indexées sous d’autres comptes, sauf si l’accès aux chemins d’accès physique concernés lui est accordé.
  • Quand les données sont indexées pour plusieurs applications : Le système de fichiers Windows ne permet pas à une application d’accéder directement aux données d’une autre application. Ainsi, une application n’a pas accès aux données indexées d’une autre application.

Extraction du contenu indexé

Une fois les données d’application indexées, l’application peut extraire les données via l’API de fichier.

Rubriques associées

Service Windows Search

Indexation du contenu par le service Windows Search via IFilters

Ajout de la recherche aux applications du Windows Store