FileSystemDirectoryEntry: getDirectory()-Methode
Die Methode getDirectory()
der FileSystemDirectoryEntry
-Schnittstelle gibt ein FileSystemDirectoryEntry
-Objekt zurück, das einem Verzeichnis innerhalb des Verzeichnisunterbaums entspricht, der im Verzeichnis verwurzelt ist, auf dem die Methode aufgerufen wird.
Syntax
getDirectory()
getDirectory(path)
getDirectory(path, options)
getDirectory(path, options, successCallback)
getDirectory(path, options, successCallback, errorCallback)
Parameter
path
Optional-
Ein String, der einen absoluten Pfad oder einen Pfad relativ zu dem Verzeichnis darstellt, in dem die Methode aufgerufen wird, und beschreibt, welcher Verzeichniseintrag zurückgegeben werden soll. Aus Sicherheitsgründen sind absolute Pfade möglicherweise nicht verwendbar.
options
Optional-
Ein Objekt, das es Ihnen ermöglicht, zu spezifizieren, ob der Eintrag erstellt werden soll, wenn er fehlt, und ob es einen Fehler darstellen soll, wenn die Datei bereits existiert. Diese Optionen sind derzeit in Web-Kontexten nicht nützlich. Siehe den Abschnitt options parameter für mehr Details.
successCallback
Optional-
Eine Methode, die aufgerufen wird, sobald das
FileSystemDirectoryEntry
erstellt wurde. Die Methode erhält einen einzelnen Parameter: dasFileSystemDirectoryEntry
-Objekt, das das entsprechende Verzeichnis darstellt. errorCallback
Optional-
Eine Methode, die aufgerufen wird, wenn ein Fehler auftritt. Sie erhält als einzigen Eingabeparameter ein
DomException
-Objekt, das den aufgetretenen Fehler beschreibt.
options
Parameter
Das options
Parameterobjekt akzeptiert die folgenden Parameter:
create
Optional-
Wenn diese Eigenschaft
true
ist und das angeforderte Verzeichnis nicht existiert, sollte der Benutzeragent es erstellen. Der Standardwert istfalse
. Das übergeordnete Verzeichnis muss bereits existieren. exclusive
Optional-
Wenn
true
und diecreate
-Option ebenfallstrue
ist, darf das Verzeichnis vor dem Aufruf nicht existieren. Stattdessen muss es möglich sein, es neu zu erstellen. Der Standardwert istfalse
. Dieser Parameter wird ignoriert, wenncreate
false
ist.
Die folgende Tabelle beschreibt das Ergebnis jeder möglichen Kombination dieser Flags, abhängig davon, ob der Zielverzeichnispfad bereits existiert oder nicht.
create Option |
exclusive Option |
Bedingung des Pfads | Ergebnis |
---|---|---|---|
false |
Ignoriert | Pfad existiert und ist ein Verzeichnis | Der successCallback wird mit einem FileSystemDirectoryEntry aufgerufen. |
false |
Ignoriert | Pfad existiert, aber ist eine Datei | Der errorCallback wird mit einem geeigneten Fehlercode aufgerufen (sofern der Callback bereitgestellt wurde). |
true |
false |
Pfad existiert | Das bestehende Verzeichnis wird entfernt und durch ein neues ersetzt, dann wird der successCallback mit einem FileSystemDirectoryEntry aufgerufen. |
true |
false |
Pfad existiert nicht | Das Verzeichnis wird erstellt und dann ein FileSystemDirectoryEntry an den successCallback übergeben. |
true |
true |
Pfad existiert | Der errorCallback wird mit einem geeigneten Fehler, wie FileError.PATH_EXISTS_ERR , aufgerufen. |
true |
true |
Pfad existiert nicht | Das Verzeichnis wird erstellt und dann ein FileSystemDirectoryEntry an den successCallback übergeben. |
Rückgabewert
Keiner (undefined
).
Ausnahmen
NotFoundError
DOMException
-
Wird ausgelöst, wenn die
create
-Option nicht angegeben wurde (oder alsfalse
angegeben wurde) und das Verzeichnis nicht existiert. SecurityError
DOMException
-
Wird ausgelöst, wenn die Anforderung zum Zugriff auf das Verzeichnis aus Sicherheitsgründen abgelehnt wurde.
TypeMismatchError
DOMException
-
Wird ausgelöst, wenn der angegebene Pfad kein Verzeichnis ist; es handelt sich wahrscheinlich um eine Datei, könnte aber auch ein nicht unterstützter Dateideskriptor wie eine Pipe sein; dies hängt teilweise vom Benutzeragenten ab.
Beispiele
In diesem Beispiel wird eine Funktion vorgestellt, deren Aufgabe es ist, innerhalb eines Anwendungsverzeichnisses des Benutzers eine JSON-Datei mit einem Benutzerwörterbuch für eine bestimmte Sprache zu finden und dann dieses Wörterbuch zu laden.
let dictionary = null;
function loadDictionaryForLanguage(appDataDirEntry, lang) {
dictionary = null;
appDataDirEntry.getDirectory("Dictionaries", {}, (dirEntry) => {
dirEntry.getFile(`${lang}-dict.json`, {}, (fileEntry) => {
fileEntry.file((dictFile) => {
let reader = new FileReader();
reader.addEventListener("loadend", () => {
dictionary = JSON.parse(reader.result);
});
reader.readAsText(dictFile);
});
});
});
}
Die Funktion loadDictionaryForLanguage()
verwendet zu Beginn getDirectory()
, um das FileSystemDirectoryEntry
-Objekt zu erhalten, das einen Unterordner namens "Dictionaries" innerhalb des angegebenen Anwendungsverzeichnisses darstellt. Der Erfolgscallback dieser Funktion nimmt das resultierende Verzeichniseintragsobjekt und ruft getFile()
auf, um ein FileSystemFileEntry
-Objekt zu erhalten, das die Wörterbuchdatei darstellt. Der Erfolgscallback dieser Funktion erstellt wiederum einen neuen FileReader
und verwendet ihn, um den Inhalt der Datei zu laden. Wenn dieser erfolgreich geladen wird (wie durch das Auslösen des loadend
-Ereignisses angezeigt), wird der geladene Text in JSON.parse()
übergeben, um in ein JavaScript-Objekt umgewandelt zu werden.
Spezifikationen
Specification |
---|
File and Directory Entries API # dom-filesystemdirectoryentry-getdirectory |
Browser-Kompatibilität
BCD tables only load in the browser