Como indexar dados de aplicativo locais

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

No Windows 8, você pode indexar os dados locais armazenados de seu aplicativo através do WSS (Windows Search Service).

Se o seu aplicativo gerencia arquivos como documentos, emails ou mídia (fotos, músicas, vídeos, etc.), ele deve atender a um requisito central para indexar o conteúdo ou as propriedades dos arquivos de forma estrutural, para que os usuários possam gerenciar e recuperar os dados de forma rápida e eficiente. Não é necessário criar o indexador no aplicativo. Há uma opção prática e segura para desenvolvedores de aplicativos como você: basta habilitar o WSS para indexar os dados do aplicativo.

As principais vantagens do uso do WSS para indexar os dados do aplicativo são:

  • O WSS permite a indexação de todo o texto do conteúdo dos tipos de documentos mais usados. Além disso, o WSS também permite a indexação de propriedades de arquivos.
  • Com o contrato de pesquisa interno e APIs de arquivos, fica fácil obter e reutilizar dados indexados.
  • O Windows Search respeita as configurações de segurança do sistema de arquivos, que mantêm os dados de aplicativos indexados armazenados com segurança no indexador do Windows.

O Windows Search funciona com todos os aplicativos da Windows Store, inclusive os que são escritos em JavaScript, C#, C++ e VB.Net.

Habilitando o Windows Search no aplicativo

Solicitar que o Windows Search indexe os dados do aplicativo não necessita esforço. Você precisa criar uma pasta chamada indexada na pasta de dados de aplicativos e armazenar o conteúdo que precisa ser indexado dentro dela. O Windows Search trata a pasta de indexação como qualquer outro local de indexação no disco rígido. Ele irá indexar o conteúdo do arquivo ou metadados do arquivo (propriedades) nesta pasta e em todas as subpastas. Veja a seguir uma lista de considerações importantes:

  1. A pasta indexada deve seguir estas diretrizes:
    • A pasta indexada tem de ser criada abaixo da raiz localFolder. O Windows Search indexa o conteúdo profundamente em sua pasta. Qualquer arquivo localmente armazenado nesta pasta ou suas subpastas (incluindo todos os níveis de subpastas) será indexado. Somente é permitida uma pasta indexada por aplicativo.
    • O nome da pasta indexada não diferencia maiúsculas de minúsculas.
    • Embora a pasta de dados do aplicativo seja chamada localFolder na API do Tempo de Execução do Windows , é chamada LocalState no disco rígido físico. Para acessar essa pasta para fins de teste, use este caminho de pasta: %user%\ AppData\Local\Packages\%packageName%\LocalState
    • A estrutura de pastas abaixo de indexada pode ser profunda, mas a API do Windows não permite que o comprimento do caminho de um arquivo/pasta seja maior que MAX_PATH, definido como 260 caracteres. Por isso, verifique se os arquivos ou as pastas na pasta indexed não excedem esse limite. Para saber mais sobre MAX_PATH, veja Limite de comprimento de caminho máximo.
  2. O Windows Search indexa somente os dados armazenados localmente. Em outras palavras, somente os arquivos localmente armazenados na pasta indexada ou em suas subpastas serão indexados.
  3. A pasta indexada não pode ser criada durante a instalação. Ela somente pode ser criada quando o aplicativo está em execução. Visto que leva tempo para o Windows Search ser concluído, dependendo do tamanho do conteúdo, recomendamos que você crie a pasta indexada quando o aplicativo for executado pela primeira vez. Uma vez que a pasta indexada for criada, o Windows Search irá indexar o conteúdo do aplicativo automaticamente. Se os arquivos ou subpastas forem modificados (adicionados, excluídos ou atualizados), o Windows Search reagendará automaticamente um processo de indexação e manterá o indexador atualizado com as mudanças. Observe que o Windows Search monitora a utilização da CPU para otimizar o processo de indexação dentro da sua própria agenda.

Segurança

O WSS respeita as configurações de segurança do sistema de arquivos do Windows para que os dados de aplicativos indexados sejam armazenados no indexador de forma segura. Em particular:

  • Quando há várias contas de usuário no mesmo computador: Os aplicativos da Windows Store são instalados por conta de usuário. Quando há vários usuários no mesmo computador usando o mesmo aplicativo, cada instância do aplicativo cria sua própria pasta indexada em outro caminho físico. Dessa forma, um usuário não poderá acessar os dados indexados de outras contas, a menos que ele tenha obtido acesso a esse caminho físico.
  • Quando são indexados dados de vários aplicativos: O sistema de arquivos do Windows não permite que um aplicativo acesse os dados diretamente de outro aplicativo. Assim, um aplicativo não tem acesso aos dados indexados de outro aplicativo.

Obtendo conteúdo indexado

Após a indexação dos dados de aplicativo, o aplicativo poderá obtê-los por meio da API de arquivo.

Tópicos relacionados

Serviço Windows Search

Como o serviço Windows Search indexa o conteúdo por meio de IFilters

Adicionando pesquisa a aplicativos da Windows Store