Windows Dev Center

So wird's gemacht: Abrufen von Dateien und Ordnern an einem Speicherort (Apps im Metro-Stil mit JavaScript und HTML)

[Diese Dokumentation ist vorläufig. Änderungen vorbehalten.]

Rufen Sie Dateien und Ordner ab, die sich an einem bestimmten Speicherort befinden, beispielsweise einem Ordner, einer Bibliothek, einem Gerät oder einer Netzwerkadresse.

Voraussetzungen

Abrufen des enthaltenden Ordners

Wenn Sie eine Liste des Inhalts eines bestimmten Ordners abrufen möchten, müssen Sie zuerst den Ordner abrufen.

Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele wird die Bildbibliothek abgerufen:


var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;

Im vorherigen Beispiel dient KnownFolders zum Abrufen der Bildbibliothek (als StorageFolder-Objekt). Sie können KnownFolders-Eigenschaften verwenden, um Ordner abzurufen, die eine Reihe von Benutzerressourcen wie Bibliotheken, Geräte oder Netzwerkadressen darstellen.

Wichtig  Wenn Sie eine KnownFolders-Eigenschaft zum Zugreifen auf eine Bibliothek, ein Gerät oder eine Netzwerkadresse verwenden möchten, muss die App über die entsprechende Funktion im App-Manifest verfügen. Weitere Informationen zu Funktionen finden Sie unter Zugreifen auf Benutzerressourcen mit der Windows-Runtime und Schnellstart: Arbeiten mit Dateien.

Abrufen einer Liste von Ordnerinhalten

Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele wird eine Liste von Elementen in der Bildbibliothek abgerufen:


picturesLibrary.getItemsAsync().then(function (items) {

Das vorherige Beispiel zeigte bereits, dass Sie getItemsAsync() aufrufen können, um eine Liste des gesamten Ordnerinhalts (ein StorageFolder-Objekt) abzurufen. Wenn Sie nicht alle Elemente anzeigen möchten, können Sie getItemsAsync(startIndex, maxItemsToRetrieve) aufrufen, um Ordnerinhalte in einem Bereich nach Index abzurufen.

Wenn Sie eine getItemsAsync-Methode für einen Ordner aufrufen, wird die Liste der Elemente auf die Dateien und Unterordner in diesem Ordner beschränkt. Die Dateien und Ordner in den Unterordnern sind nicht enthalten.

Rufen Sie eine getFilesAsync-Methode auf, wenn Sie eine Liste der Dateien in einem Ordner benötigen. Rufen Sie eine getFoldersAsync-Methode auf, wenn Sie eine Liste von Ordnern benötigen.

Verwenden Sie nach dem Abrufvorgang then zum Definieren einer Funktion, die die Liste der empfangenen Objekte verwendet (im vorherigen Beispiel items) und die zusätzlichen Aufgaben ausführt, die Sie benötigen.

Arbeiten mit der Liste

Im FolderEnumeration-Beispiel auf der Homepage für Metro-App-Beispiele werden zusätzliche Aufgaben mit der items-Liste in der Bildbibliothek ausgeführt:



    outputHeader(picturesLibrary.name, items.size);
    items.forEach(function (item) { 
        if (item.isOfType(Windows.Storage.StorageItemTypes.folder)) { 
            output(id(picturesLibrary.name), item.name + "\\"); 
        } 
        else { 
            output(id(picturesLibrary.name), item.fileName); 
        } 
    });

Im vorigen Beispiel werden der name des Ordners und das size-Element der Liste an eine Hilfsfunktion übergeben, die diese Informationen dem Benutzer anzeigen.

Zudem können Sie die Liste von Elementen durchlaufen, um weitere Aufgaben auszuführen, wie das vorherige Beispiel zeigt. Sie können forEach für Ihre Liste von Elementen aufrufen, um Elemente in der Liste zu durchlaufen. Die Funktion, der Sie forEach übergeben, sollte ein Listenelement als Argument verwenden. Sie wird für jedes item-Element in der Liste ausgeführt.

Sie können jedes item-Element weiter verarbeiten, indem Sie dafür Methoden aufrufen. Im vorherigen Beispiel haben wir ermittelt, ob item ein Ordner (StorageFolder-Objekt) oder eine Datei (StorageFile-Objekt) ist, indem wir das Ergebnis der isOfType-Methode, die sowohl in Dateien als auch Ordnern vorhanden ist, mit dem StorageItemTypes-Enumerationswert verglichen haben. Anhand dieses Vergleichs werden verschiedene Informationen über das Element der output-Hilfsfunktion übergeben. Sie können jedoch noch eine Reihe zusätzlicher Aufgaben ausführen.

Weitere Hintergrundinformationen sowie eine Beschreibung der Funktionsweise von outputHeader und output finden Sie im FolderEnumeration-Beispiel, das Sie auf der Homepage für Metro-App-Beispiele herunterladen können.

Vollständiges Beispiel



// Get folder
var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;

//  Get folder contents
picturesLibrary.getItemsAsync().then(function (items) {
    // Then perform tasks with the list of files and folders that was retrieved

    // For example, display name of containing folder and count of items in folder
    outputHeader(picturesLibrary.name, items.size);

    // For example, display info for each item
    items.forEach(function (item) { 
        if (item.isOfType(Windows.Storage.StorageItemTypes.folder)) { 
            output(id(picturesLibrary.name), item.name + "\\"); 
        } 
        else { 
            output(id(picturesLibrary.name), item.fileName); 
        } 
    }); 
});

Verwandte Themen

Zugreifen auf Daten in Dateien
Abrufen sortierter Dateilisten
Schnellstart: Arbeiten mit Dateien
Zugreifen auf Benutzerressourcen mit Windows Runtime
Homepage für Metro-App-Beispiele
Nachschlagewerk
Windows.Storage.KnownFolders class
Windows.Storage.StorageFile class
Windows.Storage.StorageFolder class
Windows.Storage.StorageItemTypes enum

 

 

Anzeigen:
© 2015 Microsoft