FileSystemHandle
Baseline 2023
Newly available
Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Das FileSystemHandle
-Interface der File System API ist ein Objekt, das einen Datei- oder Verzeichniseintrag darstellt. Mehrere Handles können denselben Eintrag repräsentieren. In den meisten Fällen arbeiten Sie nicht direkt mit dem FileSystemHandle
, sondern mit seinen Kind-Interfaces FileSystemFileHandle
und FileSystemDirectoryHandle
.
Schnittstellen basierend auf FileSystemHandle
Nachfolgend finden Sie eine Liste von Schnittstellen, die auf dem FileSystemHandle
-Interface basieren.
FileSystemFileHandle
-
Repräsentiert ein Handle zu einem Datei-Eintrag.
FileSystemDirectoryHandle
-
Bietet ein Handle zu einem Verzeichniseintrag.
Instanz-Eigenschaften
Instanz-Methoden
isSameEntry()
-
Vergleicht zwei Handles, um festzustellen, ob die zugehörigen Einträge (entweder eine Datei oder ein Verzeichnis) übereinstimmen.
queryPermission()
Experimentell-
Fragt den aktuellen Berechtigungsstatus des aktuellen Handles ab.
remove()
Experimentell Nicht standardisiert-
Fordert die Entfernung des durch das Handle dargestellten Eintrags aus dem zugrunde liegenden Dateisystem an.
requestPermission()
Experimentell-
Fordert Lese- oder Lese-/Schreibrechte für das Datei-Handle an.
Beispiele
Typüberprüfung
Der untenstehende Code ermöglicht dem Nutzer die Auswahl einer Datei über den Dateiauswahldialog und prüft dann, ob das zurückgegebene Handle eine Datei oder ein Verzeichnis ist.
// store a reference to our file handle
let fileHandle;
async function getFile() {
// open file picker
[fileHandle] = await window.showOpenFilePicker();
if (fileHandle.kind === "file") {
// run file code
} else if (fileHandle.kind === "directory") {
// run directory code
}
}
Abfrage/Anforderung von Berechtigungen
Die folgende asynchrone Funktion gibt true
zurück, wenn der Benutzer Lese- oder Lese-/Schreibrechte für das Datei-Handle gewährt hat. Wenn nicht, wird die Berechtigung angefordert.
// fileHandle is a FileSystemFileHandle
// withWrite is a boolean set to true if write
async function verifyPermission(fileHandle, withWrite) {
const opts = {};
if (withWrite) {
opts.mode = "readwrite";
}
// Check if we already have permission, if so, return true.
if ((await fileHandle.queryPermission(opts)) === "granted") {
return true;
}
// Request permission to the file, if the user grants permission, return true.
if ((await fileHandle.requestPermission(opts)) === "granted") {
return true;
}
// The user did not grant permission, return false.
return false;
}
Einträge vergleichen
Die folgende Funktion vergleicht einen einzelnen Eintrag mit einem Array von Einträgen und gibt ein neues Array mit allen übereinstimmenden Einträgen zurück.
function removeMatches(fileEntry, entriesArr) {
const newArr = entriesArr.filter((entry) => !fileEntry.isSameEntry(entry));
return newArr;
}
Spezifikationen
Specification |
---|
File System Standard # api-filesystemhandle |
Browser-Kompatibilität
BCD tables only load in the browser