Come eseguire query avanzate sui dati locali dell'app

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Questo argomento spiega il modo in cui un'app può usare le API per i file nello spazio dei nomi Windows.Storage per eseguire query avanzate sui file nei dati dell'app archiviati localmente.

Le app di Windows Store possono usare l'API per i file per eseguire query avanzate sui contenuti archiviati nelle librerie dell'utente. Questa possibilità è utile soprattutto per le app che gestiscono contenuti avanzati, quali documenti, posta o file multimediali. I contenuti multimediali possono includere foto, musica e video. Puoi usare queste query per aggiungere caratteristiche quali ricerche di testo completo e filtri basati su query nei medatati archiviati nei file.

Cosa sapere

Tecnologie

Prerequisiti

Istruzioni

Passaggio 1: Attivare query avanzate per i dati dell'app

Per fornire query avanzate sui file, usa il servizio Windows Search per indicizzare questi file In genere i file dei dati archiviati a livello locale per un'app non sono indicizzati perché indicizzazione comporta un costo in termini di prestazioni, che non è necessario sostenere quando l'app non richiede funzionalità di query avanzate.

Per abilitare l'indicizzazione dei file nei dati di un'app è necessario creare una cartella di nome indexed all'interno della cartella dai dati dell'app, quindi archiviare in tale cartella i contenuti che desideri indicizzare. Il servizio Windows Search indicizza i contenuti dei file e dei metadati nella cartella indexed e in tutte le relative sottocartelle.

JJ835814.wedge(it-it,WIN.10).gifPer abilitare l'indicizzazione di file nei dati dell'app

  1. Pianifica la cartella indexed da posizionare sotto localFolder. Ecco alcune regole relative a indexed e localFolder:

    • La cartella indexed deve essere creata sotto la radice localFolder.

    • Il servizio Windows Search indicizza le proprietà e il contenuto del file in questa cartella a un livello profondo. Ciò significa che il servizio Windows Search indicizza qualsiasi file archiviato localmente in questa cartella o nelle rispettive sottocartelle, inclusi tutti i livelli di sottocartelle.

      Il servizio Windows Search supporta l'indicizzazione e la ricerca di testo completo per i formati di file HTML, PDF, XML e RTF, per i formati di file Microsoft Office e altro ancora. Per informazioni sui filtri per il servizio Windows Search, vedi il documento relativo ai gestori di filtri disponibili in Windows.

    • È consentita una sola cartella indexed per ogni app.

    • Per il nome di cartella indexed non viene fatta distinzione tra maiuscole e minuscole.

    • Anche se la cartella dei dati delle app è chiamata localFolder nell'API di Windows Runtime, il nome di questa cartella sarà LocalState nell'unità disco rigido fisica. Se vuoi accedere a questa cartella per fini di test, usa questo percorso di cartella:

      %user%\ AppData\Local\Packages\%packageName%\LocalState
      
    • La struttura di cartelle sotto la cartella indexed può essere profonda, ma l'API di Windows non permette percorsi di file o cartelle di lunghezza superiore a MAX_PATH, ovvero superiori a 260 caratteri. Devi quindi assicurarti che i file o le cartelle nella cartella indexed non superino questo limite. Per altre informazioni su MAX_PATH, vedi il documento relativo al limite massimo di lunghezza del percorso.

    • Il servizio Windows Search indicizza solo i dati locali archiviati in modo simile all'indicizzazione di altri percorsi. In altre parole, vengono indicizzati solo i file archiviati localmente nella cartella indexed o nelle relative sottocartelle.

  2. Crea la cartella indexed sotto localFolder. Non puoi creare la cartella indexed durante l'installazione. Puoi crearla solo durante l'esecuzione dell'app. Questo è un frammento di codice che mostra come creare la cartella indexed alla prima esecuzione dell'app:

    
    Windows.Storage.ApplicationData.current.localFolder.createFolderAsync("indexed", 
        Windows.Storage.CreationCollisionOption.openIfExists).then(
                    function (result) {
                       //your code here
                    });
    
  3. Archivia i file e le cartelle in questa cartella indexed. Puoi usare StorageFolder o IStorageFolder per archiviare file e cartelle. Tutti i file e le cartelle archiviati nella cartella indexed saranno disponibili per le query avanzate mediante le API dei file nello spazio dei nomi Windows.Storage.

Passaggio 2: Recuperare contenuto indicizzato

Dopo l'indicizzazione dei dati dell'app da parte del servizio Windows Search, l'app potrà recuperare i dati tramite le API per i file nello spazio dei nomi Windows.Storage. Ad esempio, per eseguire query usa CreateFileQuery o CreateFolderQuery da una StorageFolder che rappresenta la cartella indexed o qualsiasi cartella figlio all'interno della cartella indexed.

Argomenti correlati

Windows.Storage

Servizio Windows Search

StorageFolder

IStorageFolder

ApplicationData.localFolder

IFilter