Seguimiento de los archivos y carpetas usados recientemente
API importantes
Realiza un seguimiento de los archivos a los que el usuario accede con mayor frecuencia; para ello, agrégalos a la lista de elementos usados recientemente (MRU) de la aplicación. La plataforma administra la lista MRU automáticamente ordenando los elementos según la hora del último acceso y eliminando los más antiguos cuando se alcanza el límite de 25 elementos en la lista. Todas las aplicaciones tienen sus propias listas de MRU.
La lista de MRU de una aplicación se representa mediante la clase StorageItemMostRecentlyUsedList, que se obtiene a partir de la propiedad estática StorageApplicationPermissions.MostRecentlyUsedList. Los elementos MRU 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 de MRU.
Nota
Para ver muestras completas, consulte la muestra de selector de archivos y la muestra de acceso de archivos .
Requisitos previos
Comprender la programación asincrónica de las aplicaciones para Plataforma universal de Windows (UWP)
Puedes aprender a escribir aplicaciones asincrónicas en C# o Visual Basic. Consulta Llamar a API asincrónicas en C# o Visual Basic. Para aprender a escribir aplicaciones asincrónicas en C++, consulta Programación asincrónica en C++.
Permisos de acceso a la ubicación
Consulta Permisos de acceso de archivos.
Abrir archivos y carpetas con un selector
Los archivos seleccionados, por lo general, son los archivos que los usuarios usan una y otra vez.
Agregar archivos seleccionados a la lista de MRU
Los archivos que el usuario selecciona son a menudo archivos que se usan repetidas veces. Por lo tanto, considera la posibilidad de agregar los archivos seleccionados a la lista de MRU de la aplicación conforme se seleccionan. Esta es la manera de hacerlo.
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync(); var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList; string mruToken = mru.Add(file, "profile pic");
StorageItemMostRecentlyUsedList.Add está sobrecargado. En el ejemplo, se usa Add(IStorageItem, String) para poder asociar metadatos al archivo. La configuración de metadatos permite grabar el propósito del elemento como, por ejemplo, "imagen de perfil". También puedes agregar el archivo sin metadatos a la lista de MRU, llamando al método Add(IStorageItem). Cuando se agrega un elemento a la lista de MRU, el método devuelve una cadena de identificación única, denominada token, que se usa para recuperar el elemento.
Sugerencia
Necesitará el token para recuperar un elemento de la lista de utilizado recientemente, así que consérvelo en algún lugar. Para más información sobre los datos de aplicación, consulta Administrar datos de la aplicación.
Usar un token para recuperar elementos de la lista de MRU
Usa el método de recuperación más apropiado para el elemento que quieres recuperar.
- Puedes recuperar un archivo como un elemento StorageFile, mediante GetFileAsync.
- Puedes recuperar una carpeta como un elemento StorageFolder, mediante GetFolderAsync.
- Puedes recuperar un elemento IStorageItem genérico, que puede representar un archivo o carpeta, mediante GetItemAsync.
A continuación se muestra cómo recuperar el archivo que acabamos de agregar.
StorageFile retrievedFile = await mru.GetFileAsync(mruToken);
A continuación se muestra cómo iterar todas las entradas para obtener tokens y después elementos.
foreach (Windows.Storage.AccessCache.AccessListEntry entry in mru.Entries)
{
string mruToken = entry.Token;
string mruMetadata = entry.Metadata;
Windows.Storage.IStorageItem item = await mru.GetItemAsync(mruToken);
// The type of item will tell you whether it's a file or a folder.
}
AccessListEntryView permite iterar entradas de la lista de MRU. Estas entradas son estructuras AccessListEntry que contienen el token y los metadatos de un elemento.
Quitar elementos de la lista de MRU cuando está llena
Cuando se alcanza el límite de 25 elementos en la lista de MRU y quieres agregar uno nuevo, el elemento más antiguo se eliminará automáticamente. Por lo tanto, nunca es necesario quitar un elemento antes de agregar uno nuevo.
Lista de acceso futuro
Además de una lista de MRU, tu aplicación también tiene una lista de acceso futuro. Mediante la selección de archivos y carpetas, el usuario concede permiso a la aplicación para acceder a elementos que es posible que no estén disponibles de otro modo. Si agregas estos elementos a la lista de acceso futuro, podrás conservar este permiso cuando la aplicación desee tener acceso a ellos más tarde. La lista de acceso futuro de la aplicación se representa mediante la clase StorageItemAccessList, que se obtiene a partir de la propiedad estática StorageApplicationPermissions.FutureAccessList.
Cuando un usuario selecciona un elemento, considera la posibilidad de agregarlo a la lista de acceso futuro, así como a la lista de MRU.
- FutureAccessList puede conservar hasta 1000 elementos. Recuerda: puede contener carpetas y archivos, lo que implica una gran cantidad de carpetas.
- La plataforma nunca quita los elementos de FutureAccessList de forma automática. Cuando se alcance el límite de 1000 elementos, no podrás agregar más elementos hasta que no liberes espacio con el método Remove.