Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
FileSystemDirectoryEntry: getFile() Methode
Die Methode getFile() des FileSystemDirectoryEntry Interface gibt ein FileSystemFileEntry Objekt zurück, das einer Datei entspricht, die sich irgendwo im Verzeichnisbaum befindet, der am Verzeichnis verwurzelt ist, auf dem sie aufgerufen wird.
Syntax
getFile()
getFile(path)
getFile(path, options)
getFile(path, options, successCallback)
getFile(path, options, successCallback, errorCallback)
Parameter
pathOptional-
Ein String, der den Pfad angibt, relativ zu dem Verzeichnis, auf dem die Methode aufgerufen wird, und beschreibt, welcher Eintrag der Datei zurückgegeben werden soll.
optionsOptional-
Ein Objekt, das es Ihnen ermöglicht festzulegen, ob der Eintrag erstellt werden soll, falls er fehlt, und ob es einen Fehler gibt, 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
FileSystemFileEntryerstellt wurde. Die Methode erhält ein einzelnes Parameter: dasFileSystemFileEntryObjekt, das die betreffende Datei darstellt. errorCallbackOptional-
Eine Methode, die aufgerufen wird, wenn ein Fehler auftritt. Sie erhält als einzigen Eingabeparameter ein
DOMExceptionObjekt, das den aufgetretenen Fehler beschreibt.
options Parameter
Das options Parameterobjekt akzeptiert die folgenden Parameter:
createOptional-
Wenn diese Eigenschaft
trueist und die angeforderte Datei nicht existiert, sollte das Benutzeragent die Datei erstellen. Der Standardwert istfalse. Das übergeordnete Verzeichnis muss bereits existieren. exclusiveOptional-
Wenn
trueund diecreateOption ebenfallstrueist, darf die Datei nicht vorhanden sein, bevor der Aufruf ausgeführt wird. Stattdessen muss es möglich sein, dass sie neu zur Aufrufzeit erstellt wird. Der Standardwert istfalse. Dieses Parameter wird ignoriert, wenncreatefalseist.
Die folgende Tabelle beschreibt das Ergebnis jeder möglichen Kombination dieser Flags, abhängig davon, ob der Zieldateipfad bereits existiert oder nicht.
create Option |
exclusive Option |
Pfadbedingung | Ergebnis |
|---|---|---|---|
false |
Ignoriert | Pfad existiert und ist eine Datei | Der successCallback wird mit einem FileSystemFileEntry aufgerufen. |
false |
Ignoriert | Pfad existiert, ist aber ein Verzeichnis | Der errorCallback wird mit einem geeigneten Fehlercode (falls der Callback bereitgestellt wurde) aufgerufen. |
true |
false |
Pfad existiert | Die bestehende Datei wird entfernt und durch eine neue ersetzt, dann wird der successCallback mit einem FileSystemFileEntry aufgerufen. |
true |
false |
Pfad existiert nicht | Die Datei wird erstellt, dann wird ein FileSystemFileEntry an den successCallback übergeben. |
true |
true |
Pfad existiert | Der errorCallback wird mit einem geeigneten Fehler, wie z.B. DOMException.PATH_EXISTS_ERR, aufgerufen. |
true |
true |
Pfad existiert nicht | Die Datei wird erstellt, dann wird ein FileSystemFileEntry an den successCallback übergeben. |
Rückgabewert
Keiner (undefined).
Ausnahmen
NotFoundErrorDOMException-
Wird ausgelöst, wenn die
createOption nicht angegeben wurde (oder alsfalseangegeben wurde) und die Datei nicht existiert. SecurityErrorDOMException-
Wird ausgelöst, wenn der Zugriff auf die Datei aus Sicherheitsgründen verweigert wurde.
TypeMismatchErrorDOMException-
Wird ausgelöst, wenn der angegebene Pfad keine Datei ist; es ist wahrscheinlich ein Verzeichnis, könnte aber ein nicht unterstützter Dateideskriptor wie eine Pipe sein; dies hängt bis zu einem gewissen Grad vom Benutzeragent ab.
Beispiele
In diesem Beispiel wird eine Funktion vorgestellt, deren Aufgabe es ist, in einem App-Daten-Verzeichnis des Benutzers eine JSON-Datei zu finden, die ein Benutzerwörterbuch für eine angegebene Sprache enthält, 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() beginnt mit der Nutzung von getDirectory(), um das FileSystemDirectoryEntry Objekt darzustellen, das einen Unterordner namens "Dictionaries" innerhalb des angegebenen App-Datenverzeichnisses repräsentiert. Der Erfolgscallback hierfür nimmt das resultierende Verzeichniseintragsobjekt und ruft getFile() auf, um ein FileSystemFileEntry Objekt zu erhalten, das die Wörterbuchdatei repräsentiert; der Erfolgscallback hierfür erstellt wiederum einen neuen FileReader und verwendet ihn, um den Inhalt der Datei zu laden. Wenn das erfolgreich geladen wurde (wie durch das Auslösen des loadend Ereignisses angezeigt wird), wird der geladene Text in JSON.parse() übergeben, um ihn in ein JavaScript-Objekt zu rekonstituieren.
Spezifikationen
| Specification |
|---|
| File and Directory Entries API> # dom-filesystemdirectoryentry-getfile> |
Browser-Kompatibilität
Loading...