Baseline 2023
Newly available
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 FileSystemDirectoryHandle
-Interface der File System API bietet einen Zugriff auf ein Dateisystemverzeichnis.
Auf das Interface kann über die Methoden window.showDirectoryPicker()
, StorageManager.getDirectory()
, DataTransferItem.getAsFileSystemHandle()
und FileSystemDirectoryHandle.getDirectoryHandle()
zugegriffen werden.
Erbt Eigenschaften von seinem Elternteil, FileSystemHandle
.
Erbt Methoden von seinem Elternteil, FileSystemHandle
.
Reguläre Methoden:
FileSystemDirectoryHandle.getDirectoryHandle()
Gibt ein Promise
zurück, das mit einem FileSystemDirectoryHandle
für ein Unterverzeichnis mit dem angegebenen Namen innerhalb des Verzeichnishandles erfüllt wird, auf dem die Methode aufgerufen wird.
FileSystemDirectoryHandle.getFileHandle()
Gibt ein Promise
zurück, das mit einem FileSystemFileHandle
für eine Datei mit dem angegebenen Namen innerhalb des Verzeichnisses erfüllt wird, auf dem die Methode aufgerufen wird.
FileSystemDirectoryHandle.removeEntry()
Versucht, einen Eintrag asynchron zu entfernen, wenn das Verzeichnishandle eine Datei oder ein Verzeichnis mit dem angegebenen Namen enthält.
FileSystemDirectoryHandle.resolve()
Gibt ein Promise
zurück, das mit einem Array
von Verzeichnisnamen vom übergeordneten Handle zum angegebenen Kindereintrag erfüllt wird, wobei der Name des Kindereintrags als letztes Array-Element erscheint.
Asynchrones Iterator Methoden:
FileSystemDirectoryHandle.entries()
Gibt einen neuen asynchronen Iterator eines gegebenen Objekts eigener enumerierbarer "key, value"
Paare zurück.
FileSystemDirectoryHandle.keys()
Gibt einen neuen asynchronen Iterator zurück, der die Schlüssel für jedes Element in FileSystemDirectoryHandle
enthält.
FileSystemDirectoryHandle.values()
Gibt einen neuen asynchronen Iterator zurück, der die Werte für jedes Element im FileSystemDirectoryHandle
-Objekt enthält.
FileSystemDirectoryHandle[Symbol.asyncIterator]()
Gibt einen neuen asynchronen Iterator eines gegebenen Objekts eigener enumerierbarer "key, value"
Paare zurück.
Das folgende Beispiel gibt ein Verzeichnis-Handle mit dem angegebenen Namen zurück; falls das Verzeichnis noch nicht existiert, wird es erstellt.
const dirName = "directoryToGetName";
// assuming we have a directory handle: 'currentDirHandle'
const subDir = currentDirHandle.getDirectoryHandle(dirName, { create: true });
Dateipfad zurückgeben
Die folgende asynchrone Funktion verwendet resolve()
, um den Pfad zu einer ausgewählten Datei relativ zu einem angegebenen Verzeichnishandle zu finden.
async function returnPathDirectories(directoryHandle) {
// Get a file handle by showing a file picker:
const handle = await self.showOpenFilePicker();
if (!handle) {
// User cancelled, or otherwise failed to open a file.
return;
}
// Check if handle exists inside our directory handle
const relativePaths = await directoryHandle.resolve(handle);
if (relativePath === null) {
// Not inside directory handle
} else {
// relativePath is an array of names, giving the relative path
for (const name of relativePaths) {
// log each entry
console.log(name);
}
}
}
Handles für alle Dateien in einem Verzeichnis zurückgeben
Das folgende Beispiel durchsucht ein Verzeichnis rekursiv, um FileSystemFileHandle
-Objekte für jede Datei in diesem Verzeichnis zurückzugeben:
async function* getFilesRecursively(entry) {
if (entry.kind === "file") {
const file = await entry.getFile();
if (file !== null) {
file.relativePath = getRelativePath(entry);
yield file;
}
} else if (entry.kind === "directory") {
for await (const handle of entry.values()) {
yield* getFilesRecursively(handle);
}
}
}
for await (const fileHandle of getFilesRecursively(directoryHandle)) {
console.log(fileHandle);
}
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4