Die File and Directory Entries API bietet eine Möglichkeit, Verzeichnisse und Dateilisten zu verarbeiten, die vom Benutzer über ein Formulareingabefeld oder per Drag-and-Drop bereitgestellt werden. Es ist eine fortgeschrittene Version der File API, die es Ihnen erlaubt, mit einer einzelnen Datei zu arbeiten. Ursprünglich war sie dafür vorgesehen, ein vollständiges virtuelles Dateisystem zu unterstützen, aber jetzt unterstützt sie nur noch Lesevorgänge auf vom Benutzer bereitgestellten Daten.
Siehe Beziehung zu anderen dateibezogenen APIs für einen Vergleich zwischen dieser API, der File System API und der File API.
Zugriff auf ein Dateisystem erhaltenEs gibt zwei Möglichkeiten, um auf Dateisysteme zuzugreifen, die im aktuellen Spezifikationsentwurf definiert sind:
drop
Ereignis für Drag-and-Drop können Sie DataTransferItem.webkitGetAsEntry()
aufrufen, um das FileSystemEntry
für ein fallengelassenes Element zu erhalten. Wenn das Ergebnis nicht null
ist, dann handelt es sich um eine fallengelassene Datei oder ein Verzeichnis, und Sie können Dateisystemaufrufe verwenden, um damit zu arbeiten.HTMLInputElement.webkitEntries
Eigenschaft ermöglicht Ihnen den Zugriff auf die FileSystemFileEntry
Objekte für die aktuell ausgewählten Dateien, aber nur, wenn sie per Drag-and-Drop in den Dateiauswahldialog gezogen wurden (Firefox-Bug 1326031). Wenn HTMLInputElement.webkitdirectory
true
ist, ist das <input>
-Element stattdessen ein Verzeichnisauswahldialog, und Sie erhalten FileSystemDirectoryEntry
Objekte für jedes ausgewählte Verzeichnis.Die ursprüngliche File System API wurde entwickelt, um es Browsern zu ermöglichen, Unterstützung für den Zugriff auf ein sandboxed virtuelles Dateisystem auf dem Speichermedium des Benutzers zu implementieren. Die Arbeit zur Standardisierung der Spezifikation wurde 2012 aufgegeben, aber zu diesem Zeitpunkt hatte Google Chrome bereits seine eigene Implementierung der API. Im Laufe der Zeit nutzten zahlreiche beliebte Websites und Webanwendungen diese API, oft ohne alternative Lösungen oder auch nur die Verfügbarkeit der API zu überprüfen, bevor sie sie verwendeten. Mozilla entschied sich stattdessen dafür, andere APIs zu implementieren, die viele derselben Probleme lösen können, wie etwa IndexedDB; siehe den Blogbeitrag Warum keine FileSystem API in Firefox? für weitere Einblicke.
Infolgedessen funktionierten zahlreiche beliebte Websites in Browsern, die nicht Chrome waren, nicht richtig. Um dies zu beheben, wurden die Funktionen von Googles API, für die Konsens erzielt werden konnte, als File and Directory Entries API standardisiert und dann in anderen Browsern implementiert.
SchnittstellenDie File and Directory Entries 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 den Aufruf von FileSystemDirectoryEntry.createReader()
, bietet diese Schnittstelle die Funktionalität, die es erlaubt, den Inhalt eines Verzeichnisses zu lesen.
DataTransferItem.webkitGetAsEntry()
Gibt ein Objekt basierend auf FileSystemEntry
zurück, das den Eintrag der ausgewählten Datei in ihrem Dateisystem repräsentiert. Dies wird im Allgemeinen entweder ein FileSystemFileEntry
oder 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 repräsentiert. Wenn true
, akzeptiert die Dateisystem-Auswahlschnittstelle nur Verzeichnisse anstelle von Dateien.
HTMLInputElement.webkitEntries
Beschreibt die aktuell ausgewählten Dateien oder Verzeichnisse.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4