Freigeben über


So wird’s gemacht: Nachverfolgen kürzlich verwendeter Dateien und Ordner (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Sie können Dateien nachverfolgen, auf die häufig zugegriffen wird, indem Sie sie der Liste mit den zuletzt verwendeten Elementen der App hinzufügen. Die Plattform verwaltet die mostRecentlyUsedList für Sie. Dabei werden Elemente nach der Zeit und dem Ort des letzten Zugriffs sortiert und die ältesten Elemente entfernt, wenn das Limit von 25 Elementen erreicht ist. Alle Apps besitzen eine eigene mostRecentlyUsedList.

In der Regel eignet sich die MRU-Liste der App am besten für das Nachverfolgen der Dateien, die von den Benutzern zuletzt verwendet wurden. Die MRU-Liste kann jedoch auch zum Nachverfolgen von Ordnern genutzt werden. Sie können Dateien und Ordner in der MRU-Liste der App speichern. Elemente werden als IStorageItem-Objekte gespeichert. Das bedeutet, dass sowohl storageFile-Objekte (die Dateien darstellen) als auch storageFolder-Objekte (die Ordner darstellen) der MRU-Liste hinzugefügt werden können.

Voraussetzungen

Dateizugriff und Berechtigungen

Erläutert, auf welche Dateien und Speicherorte die App standardmäßig zugreifen kann und wie Ihre App Zugriff auf weitere Dateien und Ordner erhält.

Schnellstart: Dateizugriff mit Dateiauswahl

Erklärt, wie Benutzern die Auswahl von Dateien ermöglicht wird, die anschließend in der App verwendet werden. Die ausgewählten Dateien sind meist diejenigen, auf die Benutzer immer wieder zugreifen.

Verwandte Beispiele

Beispiel zum Dateizugriff

Beispiel zur Dateiauswahl

Hinzufügen der ausgewählten Dateien zur MRU-Liste

Die von den Benutzern ausgewählten Dateien sind häufig Dateien, auf die wiederholt zugegriffen wird. Deshalb empfiehlt es sich unbedingt, die Dateien, die der Benutzer auswählt, der MRU-Liste der App hinzuzufügen. Sie können ausgewählte Dateien sofort bei der Auswahl unkompliziert der MRU-Liste hinzufügen. Gehen Sie dazu wie folgt vor.

  1. Suchen Sie den Code in der App, der Benutzern die Auswahl von Dateien und/oder Ordnern ermöglicht.

    Falls Sie nicht genau wissen, wo sich der Code befindet oder wie die Dateiauswahl für den Zugriff auf Dateien verwendet wird, lesen Sie zuerst Schnellstart: Dateizugriff mit Dateiauswahl.

    Wenn der Benutzer z. B. eine einzelne Datei auswählen kann, sollte der Code dem folgenden ähneln:

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

    Bei der Rückgabe des asynchronen Aufrufs, pickSingleFileAsync im Beispiel, wird die vom Benutzer ausgewählte Datei als storageFile zurückgegeben. Wir verwenden done, um die ausgewählte Datei (pickedFile im Beispiel) an eine verarbeitende Funktion zu übergeben (im Beispiel die anonyme Funktion), womit wir die Datei der mostRecentlyUsedList hinzufügen.

    Wenn Sie den Benutzer einen Ordner anstelle einer Datei auswählen lassen, verwendet der Code pickSingleFolderAsync, und der ausgewählte Ordner wird als storageFolder zurückgegeben.

  2. Fügen Sie die ausgewählte Datei der MRU-Liste innerhalb der Verarbeitungsfunktion mit einer Codezeile wie der folgenden hinzu:

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

    mostRecentlyUsedList.add ist überladen. Im Beispiel verwenden wir add(fileOrFolder, metadata), sodass wir der Datei Metadaten zuordnen können. Wenn Sie Metadaten festlegen, können Sie zusätzliche Informationen erfassen, wie z. B. den Zweck des Elements. Im Beispiel erfassen wir den Zweck der Datei, indem wir die Metadaten auf "Profilbild" festlegen. Sie können die Datei durch einen Aufruf von add(fileOrFolder) auch ohne Metadaten der MRU-Liste hinzufügen.

    Bei jedem add eines Elements zur MRU-Liste gibt die Methode eine eindeutig identifizierende Zeichenfolge zurück. Mit diesem so genannten Token wird das Element abgerufen. Im Beispiel erfassen wird das Token in der lokalen Variablen mruToken, mehr machen wir damit jedoch nicht.

    Tipp   Da Sie zum Abrufen eines Elements aus der MRU-Liste ein Token benötigen, sollten Sie das Token in den App-Daten speichern, um es wieder verwenden zu können. Wenn beispielsweise die App der MRU-Liste ein Profilbild hinzufügt (wie im Beispiel), können Sie das Token in den App-Daten in einer Liste speichern, in der Sie die Profilbilder der Benutzer verwalten. Weitere Informationen zu App-Daten finden Sie unter Verwalten von App-Daten.

     

    Ihre Verarbeitungsfunktion sollte nun so aussehen:

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

Verwenden von Tokens zum Abrufen von Elementen aus der MRU-Liste

Sie benötigen das Token eines Elements, um es aus der mostRecentlyUsedList abzurufen. Rufen Sie das Element mit der Methode ab, die sich dafür am besten eignet:

Wir rufen z. B. mit dem folgenden Code das Token für das erste Element (eine Datei) in unserer MRU-Liste ab und rufen dann mit diesem Token eine storageFile ab, die die Datei darstellt:

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

Im Beispiel wissen wir, dass es sich beim ersten Element um eine Datei handelt, da wir der mostRecentlyUsedList nur eine Datei hinzugefügt haben.

Abrufen von Tokens für alle Elemente in der MRU-Liste

Sie rufen das Token für die einzelnen Elemente in der Liste ab, indem Sie die Einträge wie folgt durchlaufen:

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
}

Diese Einträge sind accessListEntry-Strukturen, die das Token und Metadaten für ein Element enthalten. Die Einträge enthalten das Element nicht direkt und können nicht dazu verwendet werden, das zugeordnete Element direkt abzurufen.

Stattdessen können Sie das Token für ein zugeordnetes Element mit dem accessListEntry abrufen und anschließend mit einer der Methoden aus dem vorhergehenden Abschnitt ein Element abrufen (Verwenden von Tokens zum Abrufen von Elementen aus der MRU-Liste). Im Beispiel erfassen wir das Token für die einzelnen Einträge in der lokalen Variablen mruToken, mehr machen wir damit jedoch nicht.

Die in einem accessListEntry gespeicherten Metadaten bestehen aus einer Zeichenfolge mit zusätzlichen Informationen zum Element. Sie können die Informationen angeben, wenn Sie der mostRecentlyUsedList ein Element hinzufügen.

Anmerkungen

Entfernen von Elementen aus der MRU-Liste beim Erreichen des Limits von 25 Elementen

Wenn das Limit von 25 Elementen der MRU-Liste erreicht ist und ein neues Element hinzugefügt werden soll, entfernt Windows automatisch das älteste Element (bei dem der letzte Zugriff am längsten zurück liegt). Deshalb muss kein Element entfernt werden, bevor ein neues hinzugefügt werden kann, selbst wenn die MRU-Liste die maximale Anzahl von 25 Elementen enthält.

Zugriff auf Dateien und Ordner über das Limit von 25 Elementen hinaus

Neben der MRU-Liste besitzt die App eine Liste für den künftigen Zugriff (futureAccessList), mit der Sie den Zugriff der App auf Dateien und Ordner verwalten können, auf die andernfalls nicht zugegriffen werden könnte.

Wenn der Benutzer eine Datei oder einen Ordner auswählt, können Sie das Element beiden Listen der Apps hinzufügen: mostRecentlyUsedList und futureAccessList. Indem Sie die Datei oder den Ordner der futureAccessList hinzufügen, können Sie sicherstellen, dass die App auch bei einem weniger häufigen Gebrauch des Elements den Zugriff darauf zulässt.

Die Verwendung der futureAccessList unterscheidet sich in verschiedenen Punkte von der Verwendung der MRU-Liste:

  • Die futureAccessList kann bis zu 1000 Elemente speichern.
  • Im Unterschied zur MRU-Liste wird die futureAccessList nicht von der Plattform für Sie verwaltet. Wenn das Limit von 1000 Elementen erreicht ist, müssen Sie Elemente entfernen, damit Sie wieder neue Elemente hinzufügen können. Verwenden Sie dazu die remove-Methode.

Alle Apps besitzen standardmäßig eine eigene mostRecentlyUsedList und eine futureAccessList.