Compartilhar via


Como rastrear arquivos e pastas usados recentemente (HTML)

[ 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]

Acompanhe os arquivos que o usuário acessa com frequência adicionando-os à lista de itens usados mais recentemente de seu aplicativo. A plataforma gerencia a mostRecentlyUsedList para você classificando os itens com base na data em que foram acessados pela última vez e removendo o item mais antigo quando o limite de 25 itens é atingido. Todos os aplicativos têm suas próprias mostRecentlyUsedList.

Em geral, a lista de itens usados mais recentemente (MRU) do seu aplicativo será útil para rastrear os arquivos usados mais recentemente pelo usuário, mas ela também pode ser usada para rastrear pastas. Você pode armazenar arquivos e pastas na lista MRU. Os itens são armazenados como objetos IStorageItem o que significa que objetos storageFile (que representam arquivos) e storageFolder objetos (que representam pastas) podem ser adicionados à MRU.

Pré-requisitos

Acesso e permissões de arquivo

Explica a quais arquivos e locais seu aplicativo tem acesso por padrão, e como o aplicativo pode obter acesso a arquivos e locais adicionais.

Guia de início rápido: acessando arquivos com seletores de arquivos

Explica como permitir que os usuários selecionem os arquivos em que o aplicativo deve trabalhar. Os arquivos selecionados costumam ser os mesmos arquivos que os usuários acessam com frequência.

Amostras relacionadas

Amostra de acesso a arquivos

Amostra do seletor de arquivos

Adicionar os arquivos selecionados à lista MRU

Os arquivos que o usuário seleciona costumam ser os arquivos que ele acessa com mais frequência. Sendo assim, se o usuário selecionar um arquivo, você deverá pensar seriamente em adicionar esse arquivo à lista MRU do seu aplicativo. Você pode adicionar facilmente os arquivos selecionados à lista MRU assim que eles são selecionados, seguindo estas etapas.

  1. Localize o código no aplicativo que permite que o usuário selecione arquivos e/ou pastas.

    Se você não tiver certeza de onde fica esse código ou se você não souber como usar o seletor de arquivos para acessar os arquivos, leia Início rápido: acessando arquivos com seletores de arquivos antes de continuar.

    Por exemplo, se você permitir que o usuário selecione um único arquivo, o código deverá ser semelhante a este:

    var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
    openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
    openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
    openPicker.fileTypeFilter.replaceAll([".png", ".jpg", ".jpeg"]);
    
    // Open the picker for the user to pick a file
    openPicker.pickSingleFileAsync().done(function (pickedFile) {
        if (pickedFile) {
            // Process picked file       
        } else {
            // Canceled; no file was picked
        }
    });
    

    Quando a chamada assíncrona retorna, pickSingleFileAsyncno exemplo, o arquivo que o usuário selecionou é retornado como um storageFile. Nós usamos done para passar o arquivo selecionado (pickedFile no exemplo) a uma função de processamento (a função anônima no exemplo) em que adicionaremos o arquivo à mostRecentlyUsedList.

    Se você permitir que o usuário selecione uma pasta, em vez de um arquivo, o código usa pickSingleFolderAsync e a pasta selecionada é retornada como uma storageFolder.

  2. Adicione o arquivo selecionado à lista de itens usados mais recentemente (MRU) na sua função de processamento com uma linha de código como esta:

    
            var mruToken = Windows.Storage.AccessCache.StorageApplicationPermissions.mostRecentlyUsedList.add(pickedFile, pickedFile.name);
    

    mostRecentlyUsedList.add é sobrecarregado. No exemplo, nós usamos add(fileOrFolder, metadata) para podermos associar metadados ao arquivo. A configuração de metadados permite que você capture informações adicionais, como a finalidade do item. No exemplo, nós capturamos a finalidade do arquivo configurando os metadados como "fotos para perfis". Você também pode adicionar o arquivo à lista MRU sem metadados chamando add(fileOrFolder).

    Sempre que você add um item à lista MRU, o método retorna uma cadeia de caracteres de identificação exclusiva, denominada token, que é usada para recuperar o item. No exemplo, nós capturamos esse token na variável local mruToken, mas não fizemos mais nada com ele.

    Dica   Como é preciso usar um token para recuperar um item da lista MRU, você deve considerar gravar o token para os dados do aplicativo para ser usado posteriormente. Por exemplo, se o aplicativo adicionar uma foto para perfil à lista MRU (como nós fizemos no exemplo), talvez você queira gravar o token em uma lista nos dados do aplicativo em que você rastreie as fotos para perfil do usuário. Saiba mais sobre dados do aplicativo em Gerenciando dados do aplicativo.

     

    Agora a função de processamento deve ter esta aparência:

    openPicker.pickSingleFileAsync().done(function (pickedFile) {
        if (pickedFile) {
            // Add picked file to MRU
            var mruToken = Windows.Storage.AccessCache.StorageApplicationPermissions.mostRecentlyUsedList.add(pickedFile, pickedFile.name);
    
            // Continue processing picked file      
        } else {
            // Canceled; no file was picked
        }
    });
    

Usar tokens para recuperar itens da lista MRU

Para recuperar um item da mostRecentlyUsedList você precisa do token desse item. Você deve usar o método de recuperação mais apropriado para o item a ser recuperado:

Por exemplo, nós obtemos o token para o primeiro item, um arquivo, em nossa MRU e, depois, usamos o token para recuperar um storageFile que representa esse arquivo, com este código:

var mruFirstToken = Windows.Storage.AccessCache.StorageApplicationPermissions.mostRecentlyUsedList.entries.first.token;
Windows.Storage.AccessCache.StorageApplicationPermissions.mostRecentlyUsedList.getFileAsync(mruFirstToken).done(
    function (retrievedFile) {
        // Process retrieved file
    },
    function (error) {
        // Handle errors 
    }
);

No exemplo, nós sabemos que o primeiro item é um arquivo porque nós adicionamos apenas um arquivo à mostRecentlyUsedList.

Recuperar tokens para todos os itens na MRU

Você pode recuperar o token para cada item na lista promovendo a iteração de entradas como esta:

var mruEntries = Windows.Storage.AccessCache.StorageApplicationPermissions.mostRecentlyUsedList.entries;
if (mruEntries.size > 0) {
    mruEntries.forEach(function (entry) {
        var mruToken = entry.token;
        // Continue processing the MRU entry
    });
} else {
    // Handle empty MRU
}

Essas entradas são estruturas da accessListEntry que contêm o token e os metadados para um item. As entradas não contêm o item em si e não podem ser usadas para recuperar o item associado diretamente.

Em vez disso, você pode usar a accessListEntry para recuperar o token de um item associado e recuperar um item usando um dos métodos listados na seção anterior, Usar tokens para recuperar itens da lista MRU. No exemplo, nós capturamos o token para cada entrada na variável local mruToken, mas não fizemos mais nada com ele.

Os metadados armazenados em uma accessListEntry correspondem a uma cadeia de caracteres com informações adicionais sobre o item. Você pode especificar as informações ao adicionar um item à mostRecentlyUsedList.

Comentários

Removendo itens da lista MRU ao atingir o limite de 25 itens

Quando o limite de 25 itens da lista MRU é atingido e você tenta adicionar um novo item, o Windows remove automaticamente o item mais antigo (o item que foi acessado há mais tempo). Sendo assim, você não precisa remover um item antes de adicionar outro, mesmo que a lista MRU já tenha atingido o número máximo de 25 itens.

Preservando o acesso a arquivos e pastas além do limite de 25 itens

Além da lista de itens usados mais recentemente, o aplicativo também possui uma lista de acesso futuro (futureAccessList) que você pode usar para permitir que seu aplicativo acesse arquivos e pastas que poderiam não estar acessíveis de outra forma.

Quando o usuário seleciona um arquivo ou pasta, você deve considerar a adição desse item tanto na mostRecentlyUsedList quanto na futureAccessList. A adição do arquivo ou pasta à futureAccessList ajuda a garantir que o aplicativo tenha acesso ao item mesmo que ele não seja acessado com frequência pelo usuário.

O modo como você trabalha com a futureAccessList é diferente do modo como você trabalha com a MRU em diversos aspectos:

  • A futureAccessList pode manter até 1000 itens.
  • Ao contrário da MRU, a plataforma não gerencia a futureAccessList para você. Ao atingir o limite de 1.000 itens, você deve remover um item da lista antes de adicionar outro. Você pode fazer isso usando o método remove.

Todos os aplicativos têm suas próprias mostRecentlyUsedList e futureAccessListpor padrão.