File and Directory Entries API

Die Datei- und Verzeichniseinträge-API bietet eine Möglichkeit, Verzeichnisse und Dateilisten zu verarbeiten, die vom Benutzer über eine Formular-Eingabe oder eine Drag-and-Drop-Operation bereitgestellt werden. Sie ist eine fortgeschrittenere Version der Datei-API, die es Ihnen ermöglicht, mit einer einzelnen Datei zu arbeiten. Ursprünglich sollte sie ein vollständiges virtuelles Dateisystem unterstützen, unterstützt jetzt jedoch nur Leseoperationen auf benutzerbereitgestellten Daten.

Siehe Beziehung zu anderen dateibezogenen APIs für einen Vergleich zwischen dieser API, der Dateisystem-API und der Datei-API.

Zugriff auf ein Dateisystem erhalten

Es gibt zwei Möglichkeiten, auf Dateisysteme zuzugreifen, die im aktuellen Spezifikationsentwurf definiert sind:

Verlauf

Die ursprüngliche Dateisystem-API wurde erstellt, um Browsern die Unterstützung für den Zugriff auf ein sandboxed virtuelles Dateisystem auf dem Speichergerät des Benutzers zu ermöglichen. Die Arbeit zur Standardisierung der Spezifikation wurde 2012 aufgegeben, aber zu diesem Zeitpunkt hatte Google Chrome seine eigene Implementierung der API eingeführt. Im Laufe der Zeit begannen viele beliebte Websites und Webanwendungen, sie zu nutzen, oft ohne eine Möglichkeit anzubieten, auf Standard-APIs auszuweichen oder sogar zu prüfen, ob die API verfügbar ist, bevor sie verwendet wird. Mozilla entschied sich stattdessen, andere APIs zu implementieren, die viele der gleichen Probleme lösen können, wie IndexedDB; siehe den Blogbeitrag Warum keine Datei-System-API in Firefox? für weitere Einblicke.

Als Ergebnis funktionierten eine Reihe von beliebten Websites in anderen Browsern als Chrome nicht richtig. Um das zu beheben, wurden die Funktionen von Googles API, für die ein Konsens erreicht werden konnte, als Datei- und Verzeichniseinträge-API standardisiert, und diese wurde dann in anderen Browsern umgesetzt.

Schnittstellen

Die Datei- und Verzeichniseinträge-API umfasst die folgenden Schnittstellen:

FileSystem

Repräsentiert ein Dateisystem.

FileSystemEntry

Die grundlegende Schnittstelle, die einen einzelnen Eintrag in einem Dateisystem repräsentiert. Diese wird von anderen Schnittstellen implementiert, die Dateien oder Verzeichnisse darstellen.

FileSystemFileEntry

Repräsentiert eine einzelne Datei in einem Dateisystem.

FileSystemDirectoryEntry

Repräsentiert ein einzelnes Verzeichnis in einem Dateisystem.

FileSystemDirectoryReader

Erstellt durch Aufruf von FileSystemDirectoryEntry.createReader(), bietet diese Schnittstelle die Funktionalität, die es Ihnen ermöglicht, den Inhalt eines Verzeichnisses zu lesen.

Erweiterungen zu anderen Schnittstellen

DataTransferItem.webkitGetAsEntry()

Gibt ein Objekt basierend auf FileSystemEntry zurück, das den Eintrag der ausgewählten Datei in ihrem Dateisystem repräsentiert. Dies wird in der Regel entweder ein FileSystemFileEntry oder ein FileSystemDirectoryEntry-Objekt sein.

File.webkitRelativePath

Gibt den Pfad zurück, relativ zu dem die URL der File ist.

HTMLInputElement.webkitdirectory

Ein boolescher Wert, der das webkitdirectory-Attribut darstellt. Wenn true, akzeptiert die Dateisystemauswahl-Schnittstelle nur Verzeichnisse anstatt Dateien.

HTMLInputElement.webkitEntries

Beschreibt die derzeit ausgewählten Dateien oder Verzeichnisse.

Spezifikationen

Specification
File and Directory Entries API
# api-domfilesystem

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
FileSystem
name
root

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch