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.

Das DirectoryEntrySync-Interface repräsentiert ein Verzeichnis in einem Dateisystem. Es umfasst Methoden zum Erstellen, Lesen, Suchen und rekursivem Entfernen von Dateien in einem Verzeichnis.

Warnung: Dieses Interface ist veraltet und befindet sich nicht mehr auf dem Standardpfad. Verwenden Sie es nicht mehr. Verwenden Sie stattdessen die File and Directory Entries API.

Grundlegende Konzepte

Wenn Sie Unterverzeichnisse erstellen möchten, müssen Sie jedes Unterverzeichnis nacheinander erstellen. Versuchen Sie, ein Verzeichnis mit einem vollständigen Pfad zu erstellen, der noch nicht existierende übergeordnete Verzeichnisse enthält, erhalten Sie einen Fehler. Erstellen Sie die Hierarchie, indem Sie nach der Erstellung des übergeordneten Verzeichnisses rekursiv einen neuen Pfad hinzufügen.

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

Überblick über die Methoden

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. [ todo: Erklären warum ]

getFile()

Abhängig davon, wie Sie den Parameter options gesetzt haben, erstellt die Methode entweder eine Datei oder sucht nach einer vorhandenen Datei.

Syntax

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

Entweder ein absoluter Pfad oder ein relativer Pfad vom Verzeichnis zur zu suchenden oder zu erstellenden Datei. Sie können keine Datei erstellen, deren unmittelbares Elternverzeichnis 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 kein anderer Fehler tritt 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, ist jedoch 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, bezieht sich jedoch 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 mit dem gleichen Pfad erstellen.
QUOTA_EXCEEDED_ERROR Der Vorgang würde dazu führen, dass die Anwendung ihr Speicherkontingent überschreitet.
SECURITY_ERR Die Anwendung hat keine Berechtigung, auf das durch den Pfad referenzierte Element zuzugreifen. [ todo: Erklären warum ]
TYPE_MISMATCH_ERR Der angegebene Pfad existiert, ist jedoch 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 zu suchenden oder zu erstellenden Datei. Sie können keine Datei erstellen, deren unmittelbares Elternverzeichnis 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 kein anderer Fehler tritt 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, ist jedoch 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, bezieht sich jedoch 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 mit dem gleichen Pfad erstellen.
QUOTA_EXCEEDED_ERROR Der Vorgang würde dazu führen, dass die Anwendung ihr Speicherkontingent überschreitet.
SECURITY_ERR Die Anwendung hat keine Berechtigung, auf das durch den Pfad referenzierte Element zuzugreifen. [ todo: Erklären warum ]
TYPE_MISMATCH_ERR Der angegebene Pfad existiert, ist jedoch kein Verzeichnis.

removeRecursively()

Löscht ein Verzeichnis und dessen 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 ein Fehler während des Löschvorgangs auftritt, wird möglicherweise ein Teil des Inhalts nicht gelöscht. Fangen Sie diese Fälle mit Fehler-Callbacks ab und versuchen Sie die Löschung erneut.

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 nicht mehr gültig, als es gelöscht wurde.

[todo: Mehr erklären]

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

Spezifikationen

Diese Funktion ist Teil keiner aktuellen Spezifikation. Sie befindet sich 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