Come tenere traccia di cartelle e file usati di recente (HTML)

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

Puoi tenere traccia dei file a cui gli utenti accedono frequentemente aggiungendoli all'elenco dei file usati di recente della tua app. La piattaforma gestisce automaticamente mostRecentlyUsedList ordinando gli elementi in base alla data dell'ultimo accesso e rimuovendo gli elementi meno recenti quando l'elenco raggiunge il limite di 25 elementi. Tutte le app hanno un elemento mostRecentlyUsedList specifico.

In genere, l'elenco di elementi usati di recente dell'app è particolarmente utile per tenere traccia dei file usati di recente dagli utenti, ma può anche essere usato per tenere traccia delle cartelle. Puoi archiviare sia file che cartelle nell'elenco di elementi usati di recente della tua app. Gli elementi vengono archiviati come oggetti IStorageItem, pertanto possono essere aggiunti all'elenco di elementi usati di recente sia oggetti storageFile (che rappresentano i file) che oggetti storageFolder (che rappresentano le cartelle).

Prerequisiti

Accesso ai file e autorizzazioni

Illustra a quali file e percorsi ha accesso la tua app per impostazione predefinita, nonché i modi in cui la tua app può ottenere accesso ad altri file e percorsi.

Guida introduttiva: Accesso a file con selezione file

Illustra come consentire agli utenti la selezione dei file su cui lavorare dalla tua app. I file selezionati sono spesso quelli su cui gli utenti tornano ripetutamente.

Esempi correlati

Esempio di accesso a file

Esempio di utilità di selezione file

Aggiungere i file selezionati all'elenco di elementi usati di recente

I file che gli utenti selezionano sono spesso quelli su cui tornano ripetutamente. Per questo motivo, se un utente seleziona un file, dovresti considerare l'eventualità di aggiungerlo all'elenco degli elementi usati di recente della tua app. Puoi facilmente aggiungere i file selezionati all'elenco di elementi usati di recente non appena vengono selezionati, seguendo questa procedura.

  1. Trova il codice nella tua app e lascia scegliere all'utente i file e/o le cartelle.

    Se non sei sicuro di dove sia il codice o non capisci come usare la selezione file per accedere ai file, leggi Guida introduttiva: Accesso a file con selezione file prima di continuare.

    Ad esempio, se vuoi consentire all'utente di selezionare solo un file, il codice deve avere il seguente aspetto:

    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 la chiamata asincrona viene restituita, pickSingleFileAsync nell'esempio, il file selezionato dall'utente viene restituito come un elemento storageFile. Usa done per passare il file selezionato (pickedFile nell'esempio) a una funzione di elaborazione (la funzione anonima nell'esempio) in cui aggiungerai il file a mostRecentlyUsedList.

    Se vuoi consentire all'utente di selezionare una cartella anziché un file, il codice usa pickSingleFolderAsync e la cartella selezionata viene restituita come storageFolder.

  2. Aggiungi il file selezionato all'elenco di elementi usati di recente all'interno della funzione di elaborazione con una riga di codice come questa:

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

    mostRecentlyUsedList.add è sovraccarico. Nell'esempio viene usato add(fileOrFolder, metadata) per poter associare metadati al file. L'impostazione di metadati ti consente di acquisire informazioni aggiuntive, come lo scopo dell'elemento. Nell'esempio viene acquisito lo scopo del file impostando i metadati sull'"immagine del profilo". Puoi anche aggiungere il file all'elenco degli elementi usati di recente senza metadati chiamando add(fileOrFolder).

    Ogni volta che aggiungi un elemento tramite il metodo add all'elenco degli elementi usati di recente, il metodo restituisce una stringa che identifica in modo univoco l'elemento, definita token, che viene usata per recuperare l'elemento. Nell'esempio questo token viene acquisito nella variabile locale mruToken, ma non viene usato in altro modo.

    Suggerimento   Poiché devi usare un token per recuperare un elemento dall'elenco degli elementi usati di recente, considera l'eventualità di salvare il token nei dati dell'app per riutilizzarlo in un secondo momento. Ad esempio, se la tua app aggiunge un'immagine del profilo all'elenco degli elementi usati di recente (come nell'esempio), puoi salvare il token in un elenco nei dati dell'app in cui tieni traccia delle immagini dei profili degli utenti. Ulteriori informazioni sui dati dell'app sono disponibili in Gestione dei dati dell'applicazione.

     

    La funzione di elaborazione dovrebbe essere simile a questa:

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

Usare i token per recuperare elementi dall'elenco degli elementi usati di recente

Per recuperare un elemento da mostRecentlyUsedList hai bisogno del token per tale elemento. Devi usare il metodo di recupero più appropriato per l'elemento che vuoi recuperare:

Ad esempio, puoi ottenere il token per il primo elemento, ovvero un file, nell'elenco degli elementi usati di recente e quindi usare il token per recuperare un elemento storageFile che rappresenti tale file, con il codice seguente:

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

Nell'esempio è evidente che il primo elemento è un file in quanto è stato aggiunto solo un file all'elemento mostRecentlyUsedList.

Recuperare i token per tutti gli elementi nell'elenco degli elementi usati di recente

Puoi recuperare il token per ogni elementi nell'elenco mediante l'iterazione tra le voci come segue:

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
}

Tali voci sono strutture accessListEntry contenenti il token e i metadati per un elemento. Le voci non contengono l'elemento stesso e non possono essere usate per recuperare direttamente l'elemento associato.

Puoi invece usare accessListEntry per recuperare il token per un elemento associato e quindi recuperare un elemento usando uno dei metodi elencati nella sezione precedente, Usare i token per recuperare elementi dall'elenco degli elementi usati di recente. Nell'elenco il token viene acquisito per ogni voce nella variabile locale mruToken, ma non viene usato in alcun altro modo.

I metadati archiviati in accessListEntry costituiscono una stringa con informazioni aggiuntive sull'elemento. Puoi specificare le informazioni quando aggiungi un elemento a mostRecentlyUsedList.

Osservazioni

Rimozione di elementi dall'elenco degli elementi usati di recente quando si raggiunge il limite di 25 elementi

Quando si raggiunge il limite di 25 elementi dall'elenco degli elementi usati di recente e tenti di aggiungere un nuovo elemento, Windows automaticamente rimuove l'elemento più datato, ovvero quello con una data di accesso più lontana. Non è quindi necessario rimuovere un elemento prima di aggiungerne uno nuovo, anche se l'elenco degli elementi usati di recente contiene il numero massimo di elementi (25).

Conservazione dell'accesso a file e cartelle oltre il limite di 25 elementi

Oltre all'elenco degli elementi usati di recente, la tua app dispone di un elenco degli accessi futuri (futureAccessList) che puoi usare per conservare l'accesso della tua app ai file e alle cartelle che altrimenti potrebbero non essere accessibili.

Quando un utente seleziona un file o una cartella, devi considerare l'eventualità di aggiungere tale elemento a mostRecentlyUsedList e futureAccessList della tua app. L'aggiunta del file o della cartella a futureAccessList consente di garantire che la tua app conservi l'accesso all'elemento anche se l'utente non lo apre frequentemente.

Il modo in cui usi futureAccessList è diverso dal modo in cui usi l'elenco degli elementi usati di recente per alcuni aspetti sostanziali:

  • futureAccessList può contenere fino a 1000 elementi.
  • Diversamente dall'elenco degli elementi usati di recente, la piattaforma non gestisce futureAccessList automaticamente. Quando raggiungi il limite di 1000 elementi, devi rimuovere un elemento dall'elenco prima di poterne aggiungere un altro. A questo scopo, puoi usare il metodo remove.

Tutte le app hanno elementi mostRecentlyUsedList e futureAccessList specifici per impostazione predefinita.