Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Cómo hacer un seguimiento de los archivos y carpetas usados recientemente (aplicaciones de la Tienda Windows con JavaScript y HTML)

Realiza un seguimiento de los archivos que el usuario usa con frecuencia agregándolos a la lista de elementos utilizados recientemente. Windows administra mostRecentlyUsedList automáticamente ordenando los elementos según cuándo el usuario accedió a ellos por última vez y eliminando los más antiguos cuando se alcanza el límite de 25 elementos en la lista. Todas las aplicaciones de la Tienda Windows tienen su propia mostRecentlyUsedList.

Si bien la lista de elementos utilizados recientemente (MRU) de la aplicación será muy útil para realizar un seguimiento de los archivos más recientes del usuario, también se podrá hacer lo mismo con carpetas. Puedes almacenar tanto archivos como carpetas en la lista MRU. Los elementos se almacenan como objetos IStorageItem, lo que significa que los objetos storageFile (que representan archivos) y los objetos storageFolder (que representan carpetas) pueden agregarse a la lista.

Requisitos previos

Acceso a archivos y permisos en aplicaciones de la Tienda Windows

Explica a qué archivos y ubicaciones tiene acceso tu aplicación de la Tienda Windows de manera predeterminada y las formas en que puede obtener acceso a otros archivos y ubicaciones.

Inicio rápido: acceso a archivos mediante selectores de archivos

Explica cómo permitir que los usuarios seleccionen los archivos con los que operará tu aplicación. Los archivos seleccionados, por lo general, son los archivos que los usuarios usan una y otra vez.

Muestras relacionadas

Muestra de acceso de archivos
Muestra de selector de archivos

Agregar archivos seleccionados a la lista MRU

Los archivos que el usuario selecciona son, a menudo, los que usa una y otra vez. Por lo tanto, si el usuario selecciona un archivo, no dudes en agregar ese archivo a la lista de elementos utilizados recientemente (MRU) de tu aplicación. Puedes hacer esto fácilmente, apenas el usuario seleccione un archivo, siguiendo estos pasos.

  1. Busca el código de tu aplicación que le permite al usuario seleccionar archivos y carpetas.

    Si no sabes dónde está este código o cómo usar el selector de archivos para acceder a ellos, consulta Inicio rápido: acceso a archivos mediante selectores de archivos antes de continuar.

    Por ejemplo, si permites al usuario seleccionar un solo archivo, tu código debería ser similar al siguiente:

    
    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
        }
    });
    
    

    Cuando se devuelve la llamada asincrónica, pickSingleFileAsync en el ejemplo, el archivo seleccionado por el usuario se devuelve como storageFile. Usamos done para pasar el archivo seleccionado (pickedFile en el ejemplo) a una función de procesamiento (la función anónima en el ejemplo), donde agregaremos el archivo a mostRecentlyUsedList.

    Si permites al usuario seleccionar una carpeta en lugar de un archivo, tu código usa pickSingleFolderAsync y la carpeta seleccionada se devuelve como storageFolder.

  2. Agrega el archivo seleccionado a la lista MRU, dentro de la función de procesamiento, con una línea de código como esta:

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

    mostRecentlyUsedList.add está sobrecargado. En el ejemplo, usamos add(fileOrFolder, metadata) para poder asociar metadatos con el archivo. Configurar metadatos te permite capturar información adicional, como el propósito del elemento. En el ejemplo, capturamos el propósito del archivo al configurar los metadatos en "imagen del perfil". También puedes agregar el archivo sin metadatos a la lista MRU, llamando a add(fileOrFolder).

    Siempre que add un elemento a la lista MRU, el método devuelve una cadena de identificación única, denominada token, que se usa para recuperar el elemento. En el ejemplo, capturamos este token en la variable local mruToken, pero no hacemos otra cosa con él.

    Sugerencia   Dado que necesitas usar un token para recuperar un elemento de la lista MRU, considera guardar el token en los datos de la aplicación para usarlo más adelante. Por ejemplo, si tu aplicación agrega una imagen de perfil a la lista MRU (como hacemos en el ejemplo), podría interesarte guardar el token en una lista, en los datos de la aplicación, donde realizarás el seguimiento de las imágenes de perfiles del usuario. Puedes obtener más información acerca de los datos de la aplicación, en Administración de datos de aplicaciones.

    La función de procesamiento ahora debería ser similar a la siguiente:

    
    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 elementos de la lista MRU

Para recuperar un elemento de mostRecentlyUsedList, necesitas el token de ese elemento. Debes usar el método de recuperación más apropiado para el elemento que quieres recuperar:

Por ejemplo, obtenemos el token para el primer elemento, de nuestra lista MRU, un archivo, y después lo usamos para recuperar un storageFile que representa a ese archivo, con 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 
    }
);

En el ejemplo, sabemos que el primer elemento es un archivo porque solo hemos agregado un solo archivo a mostRecentlyUsedList.

Recuperar tokens para todos los elementos de la lista MRU

Puedes recuperar el token de cada elemento de la lista, al iterar las entradas de la siguiente manera:


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
}

Estas entradas son estructuras accessListEntry que contienen el token y los metadatos de un elemento. Las entradas no contienen el elemento en sí y no pueden usarse para recuperar directamente el elemento asociado.

En cambio, puedes usar accessListEntry para recuperar el token de un elemento asociado y después recuperar un elemento usando uno de los métodos indicados en la sección anterior, Usar tokens para recuperar elementos de la lista MRU. En el ejemplo, capturamos el token de cada entrada en la variable local mruToken, pero no hacemos otra cosa con él.

Los metadatos almacenados en accessListEntry son una cadena con información adicional del elemento. Puedes especificar la información cuando agregas un elemento a mostRecentlyUsedList.

Observaciones

Eliminar elementos de la lista MRU cuando se alcanza el límite de 25 elementos

Cuando se alcanzó el límite de 25 elementos en la lista MRU y quieres agregar uno nuevo, Windows elimina automáticamente el elemento más antiguo (el que se usó hace más tiempo). Por lo tanto, no necesitas quitar un elemento antes de agregar uno nuevo, aun cuando la lista MRU contenga la cantidad máxima de elementos (25).

Conservar el acceso a archivos y carpetas por encima del límite de 25 elementos

Además de la lista de elementos utilizados recientemente, tu aplicación también tiene una lista de acceso futuro (futureAccessList) que permite a la aplicación mantener el acceso a archivos y carpetas a los que quizás, de otra manera, ya no podría acceder.

Cuando el usuario seleccione un archivo o una carpeta, considera agregar ese elemento a mostRecentlyUsedList y futureAccessList de la aplicación. Agregar el archivo o carpeta a futureAccessList, permite mantener el acceso de la aplicación a ese elemento, aun cuando el usuario no lo use frecuentemente.

La forma de trabajar con futureAccessList difiere de la forma de trabajar con la lista MRU, en dos aspectos clave:

  • futureAccessList puede retener hasta 1000 elementos.
  • A diferencia de la lista MRU, Windows no administra futureAccessList. Cuando alcanzas el límite de 1000 elementos, debes quitar un elemento de la lista antes de agregar otro. Puedes hacer esto con el método remove.

Todas las aplicaciones de la Tienda Windows tienen su propia mostRecentlyUsedList y futureAccessList de manera predeterminada.

 

 

Mostrar:
© 2018 Microsoft