DirectoryEntrySync

Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

Die DirectoryEntrySync-Schnittstelle repräsentiert ein Verzeichnis in einem Dateisystem. Sie enthält Methoden zum Erstellen, Lesen, Auffinden und rekursiven Entfernen von Dateien in einem Verzeichnis.

Warnung: Diese Schnittstelle ist veraltet und befindet sich nicht mehr auf dem Standardpfad. Verwenden Sie sie nicht mehr. Verwenden Sie stattdessen die File and Directory Entries API.

Grundlegende Konzepte

Wenn Sie Unterverzeichnisse erstellen möchten, müssen Sie jedes untergeordnete Verzeichnis nacheinander erstellen. Wenn Sie versuchen, ein Verzeichnis mit einem vollständigen Pfad zu erstellen, der übergeordnete Verzeichnisse enthält, die noch nicht vorhanden sind, erhalten Sie einen Fehler. Erstellen Sie also die Hierarchie, indem Sie rekursiv einen neuen Pfad hinzufügen, nachdem Sie das übergeordnete Verzeichnis erstellt haben.

Beispiel

Die Methode getFile() gibt ein FileEntrySync zurück, das eine Datei im Dateisystem darstellt. Das folgende Beispiel erstellt eine leere Datei namens logs.txt im Stammverzeichnis.

js
const fileEntry = fs.root.getFile("logs.txt", { create: true });

Die Methode getDirectory() gibt ein DirectoryEntrySync zurück, das ein Verzeichnis im Dateisystem darstellt. Das folgende Beispiel erstellt ein neues Verzeichnis namens project_dir im Stammverzeichnis.

js
const dirEntry = fs.root.getDirectory("project_dir", { create: true });

Methodenübersicht

Instanzmethoden

createReader()

Erstellt einen neuen DirectoryReaderSync, um Einträge aus diesem Verzeichnis zu lesen.

Syntax

js
createReader()
Parameter

Keine.

Rückgabewert
DirectoryReaderSync

Repräsentiert ein Verzeichnis in einem Dateisystem.

Ausnahmen

Diese Methode kann eine DOMException mit den folgenden Codes auslösen:

Ausnahme Beschreibung
NOT_FOUND_ERR Das Verzeichnis existiert nicht.
SECURITY_ERR Der Browser hat festgestellt, dass es nicht sicher ist, die Metadaten abzurufen.

getFile()

Abhängig davon, wie Sie den Parameter options eingestellt haben, erstellt die Methode entweder eine Datei oder sucht eine bestehende Datei.

Syntax

js
getFile(path)
getFile(path, options)
Parameter
path

Entweder ein absoluter Pfad oder ein relativer Pfad vom Verzeichnis zur Datei, die gesucht oder erstellt werden soll. Sie können keine Datei erstellen, deren unmittelbarer Elternordner nicht existiert. Erstellen Sie zuerst das übergeordnete Verzeichnis.

options

(optional) Ein Objektliteral, das das Verhalten der Methode beschreibt. Wenn die Datei nicht existiert, wird sie erstellt.

Objektliteral Bedingung Ergebnis
create: true
exclusive: true
Pfad existiert bereits Ein Fehler wird ausgelöst.
create: true
exclusive: false
Pfad existiert nicht und es tritt kein anderer Fehler auf Eine Datei wird erstellt. Wenn eine Datei bereits existiert, wird kein Fehler ausgelöst.
create: false
(exclusive wird ignoriert)
Pfad existiert Die Datei wird zurückgegeben.
create: false
(exclusive wird ignoriert)
Pfad existiert nicht Ein Fehler wird ausgelöst.
create: false
(exclusive wird ignoriert)
Pfad existiert, aber ist ein Verzeichnis Ein Fehler wird ausgelöst.
Rückgabewert
FileEntrySync

Repräsentiert eine Datei in einem Dateisystem.

Ausnahmen

Diese Methode kann eine DOMException mit den folgenden Codes auslösen:

Ausnahme Beschreibung
ENCODING_ERR Der angegebene Pfad ist ungültig.
NOT_FOUND_ERR Der Pfad war strukturell korrekt, verweist aber auf eine Ressource, die nicht existiert.
NO_MODIFICATION_ALLOWED_ERR Dies ist ein Berechtigungsproblem. Das Zielverzeichnis oder die Datei ist nicht beschreibbar.
PATH_EXISTS_ERR Die Datei existiert bereits. Sie können keine weitere Datei mit demselben Pfad erstellen.
QUOTA_EXCEEDED_ERROR Die Operation würde dazu führen, dass die Anwendung ihr Speicherkontingent überschreitet.
SECURITY_ERR Die Anwendung hat keine Berechtigung, auf das durch den Pfad verwiesene Element zuzugreifen.
TYPE_MISMATCH_ERR Der angegebene Pfad existiert, ist aber kein Verzeichnis.

getDirectory()

Erstellt oder sucht ein Verzeichnis. Die Methode ist ähnlich wie getFile(), wobei DirectoryEntrySync übergeben wird.

Syntax

js
getDirectory(path)
getDirectory(path, options)
Parameter
path

Entweder ein absoluter Pfad oder ein relativer Pfad vom Verzeichnis zur Datei, die gesucht oder erstellt werden soll. Sie können keine Datei erstellen, deren unmittelbarer Elternordner nicht existiert. Erstellen Sie zuerst das übergeordnete Verzeichnis.

options

(optional) Ein Objektliteral, das das Verhalten der Methode beschreibt, wenn die Datei nicht existiert.

Objektliteral Bedingung Ergebnis
create: true
exclusive: true
Pfad existiert bereits Ein Fehler wird ausgelöst.
create: true
exclusive: false
Pfad existiert nicht und es tritt kein anderer Fehler auf Ein Verzeichnis wird erstellt. Wenn eine Datei bereits existiert, wird kein Fehler ausgelöst.
create: false
(exclusive wird ignoriert)
Pfad existiert Das Verzeichnis wird zurückgegeben.
create: false
(exclusive wird ignoriert)
Pfad existiert nicht Ein Fehler wird ausgelöst.
create: false
(exclusive wird ignoriert)
Pfad existiert, aber ist ein Verzeichnis Ein Fehler wird ausgelöst.
Rückgabewert
DirectoryEntrySync

Repräsentiert ein Verzeichnis in einem Dateisystem.

Ausnahmen

Diese Methode kann eine DOMException mit den folgenden Codes auslösen:

Ausnahme Beschreibung
ENCODING_ERR Der angegebene Pfad ist ungültig.
NOT_FOUND_ERR Der Pfad war strukturell korrekt, verweist aber auf eine Ressource, die nicht existiert.
NO_MODIFICATION_ALLOWED_ERR Dies ist ein Berechtigungsproblem. Das Zielverzeichnis oder die Datei ist nicht beschreibbar.
PATH_EXISTS_ERR Die Datei existiert bereits. Sie können keine weitere Datei mit demselben Pfad erstellen.
QUOTA_EXCEEDED_ERROR Die Operation würde dazu führen, dass die Anwendung ihr Speicherkontingent überschreitet.
SECURITY_ERR Die Anwendung hat keine Berechtigung, auf das durch den Pfad verwiesene Element zuzugreifen.
TYPE_MISMATCH_ERR Der angegebene Pfad existiert, ist aber kein Verzeichnis.

removeRecursively()

Löscht ein Verzeichnis und seinen gesamten Inhalt. Sie können das Stammverzeichnis eines Dateisystems nicht löschen.

Wenn Sie ein Verzeichnis löschen, das eine Datei enthält, die nicht entfernt werden kann, oder wenn während des Löschvorgangs ein Fehler auftritt, werden möglicherweise nicht alle Inhalte gelöscht. Fangen Sie diese Fälle mit Fehler-Callbacks ab und versuchen Sie erneut, das Verzeichnis zu löschen.

Syntax

js
removeRecursively()
Parameter

Keine.

Rückgabewert
undefined
Ausnahmen

Diese Methode kann eine DOMException mit den folgenden Codes auslösen:

Ausnahme Beschreibung
NOT_FOUND_ERR Das Zielverzeichnis existiert nicht.
INVALID_STATE_ERR Dieses Verzeichnis ist aus einem anderen Grund als dem Löschen nicht mehr gültig.

[todo: Mehr erläutern ]

NO_MODIFICATION_ALLOWED_ERR Eines der folgenden Elemente ist nicht beschreibbar: das Verzeichnis, sein übergeordnetes Verzeichnis und einige der Inhalte im Verzeichnis.
SECURITY_ERR Die Anwendung hat keine Berechtigung, auf das Zielverzeichnis, dessen übergeordnetes Verzeichnis oder einige seiner Inhalte zuzugreifen.

Spezifikationen

Dieses Feature ist Teil keiner aktuellen Spezifikation. Es ist nicht mehr auf dem Weg, ein Standard zu werden. Verwenden Sie stattdessen die File and Directory Entries API.

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch