FileSystemDirectoryEntry: getDirectory() Methode
Die Methode getDirectory() des FileSystemDirectoryEntry-Interfaces gibt ein FileSystemDirectoryEntry-Objekt zurück, das einem Verzeichnis entspricht, das sich irgendwo innerhalb des Verzeichnis-Unterbaums befindet, dessen Wurzel das Verzeichnis ist, auf dem die Methode aufgerufen wird.
Syntax
getDirectory()
getDirectory(path)
getDirectory(path, options)
getDirectory(path, options, successCallback)
getDirectory(path, options, successCallback, errorCallback)
Parameter
pathOptional-
Ein String, der einen absoluten Pfad oder einen Pfad relativ zu dem Verzeichnis darstellt, auf dem die Methode aufgerufen wird und welches Verzeichniseintrag zurückgegeben werden soll. Aus Sicherheitsgründen können absolute Pfade möglicherweise nicht verwendet werden.
optionsOptional-
Ein Objekt, das Ihnen erlaubt, anzugeben, ob der Eintrag erstellt werden soll, wenn er fehlt und ob es ein Fehler ist, wenn die Datei bereits existiert. Diese Optionen sind derzeit in Web-Kontexten nicht nützlich. Siehe den Abschnitt options parameter für weitere Details.
successCallbackOptional-
Eine Methode, die aufgerufen wird, sobald das
FileSystemDirectoryEntryerstellt wurde. Die Methode erhält einen einzelnen Parameter: dasFileSystemDirectoryEntry-Objekt, das das betreffende Verzeichnis darstellt. errorCallbackOptional-
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 Parameter-Objekt akzeptiert folgende Parameter:
createOptional-
Wenn diese Eigenschaft
trueist und das angeforderte Verzeichnis nicht existiert, sollte der User-Agent es erstellen. Der Standardwert istfalse. Das übergeordnete Verzeichnis muss bereits existieren. exclusiveOptional-
Wenn
trueund diecreate-Option ebenfallstrueist, darf das Verzeichnis vor dem Aufruf nicht existiert haben. Stattdessen muss es möglich sein, es neu zur Aufrufzeit zu erstellen. Der Standardwert istfalse. Dieser Parameter wird ignoriert, wenncreatefalseist.
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 |
Pfadbedingung | Ergebnis |
|---|---|---|---|
false |
Ignored | Pfad existiert und ist ein Verzeichnis | Der successCallback wird mit einem FileSystemDirectoryEntry aufgerufen. |
false |
Ignored | Pfad existiert, aber ist eine Datei | Der errorCallback wird mit einem geeigneten Fehlercode aufgerufen (wenn der Callback bereitgestellt wurde). |
true |
false |
Pfad existiert | Das vorhandene 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, dann wird ein FileSystemDirectoryEntry an den successCallback übergeben. |
true |
true |
Pfad existiert | Der errorCallback wird mit einem geeigneten Fehler, wie DOMException.PATH_EXISTS_ERR, aufgerufen. |
true |
true |
Pfad existiert nicht | Das Verzeichnis wird erstellt, dann wird ein FileSystemDirectoryEntry an den successCallback übergeben. |
Rückgabewert
Keiner (undefined).
Ausnahmen
NotFoundErrorDOMException-
Wird ausgelöst, wenn die
create-Option nicht angegeben wurde (oder alsfalseangegeben wurde) und das Verzeichnis nicht existiert. SecurityErrorDOMException-
Wird ausgelöst, wenn der Zugriff auf das Verzeichnis aus Sicherheitsgründen verweigert wurde.
TypeMismatchErrorDOMException-
Wird ausgelöst, wenn der angegebene Pfad kein Verzeichnis ist; es ist wahrscheinlich eine Datei, könnte aber auch ein nicht unterstützter Datei-Deskriptor wie eine Pipe sein; dies hängt bis zu einem gewissen Grad vom User-Agent ab.
Beispiele
In diesem Beispiel wird eine Funktion vorgestellt, deren Aufgabe es ist, innerhalb des App-Datenverzeichnisses eines Benutzers eine JSON-Datei mit einem Benutzerdictionary für eine bestimmte Sprache zu finden und dieses Dictionary dann 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() beginnt, indem sie getDirectory() verwendet, um das FileSystemDirectoryEntry-Objekt zu erhalten, das einen Unterordner namens "Dictionaries" darstellt, der sich im angegebenen App-Datenverzeichnis befindet. Der Erfolgscallback dafür nimmt das resultierende Verzeichniseintrag-Objekt und ruft getFile() auf, um ein FileSystemFileEntry-Objekt zu erhalten, das die Dictionary-Datei darstellt; der Erfolgscallback dafür wiederum erstellt einen neuen FileReader und verwendet ihn, um den Inhalt der Datei zu laden. Wenn dieser erfolgreich geladen wurde (wie durch das Auftreten 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
Loading…