Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
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.
Die File System API — mit Erweiterungen, die über die File System Access API bereitgestellt werden, um auf Dateien im Dateisystem des Geräts zuzugreifen — ermöglicht Lese-, Schreib- und Dateiverwaltungsfunktionen.
Siehe Beziehung zu anderen dateibezogenen APIs für einen Vergleich zwischen dieser API, der File and Directory Entries API und der File API.
Diese API ermöglicht die Interaktion mit Dateien auf einem lokalen Gerät des Benutzers oder auf einem vom Benutzer zugänglichen Netzwerkdateisystem. Die Kernfunktionalität dieser API umfasst das Lesen von Dateien, das Schreiben oder Speichern von Dateien und den Zugriff auf die Verzeichnisstruktur.
Die meiste Interaktion mit Dateien und Verzeichnissen erfolgt über „Handles“. Eine übergeordnete Klasse FileSystemHandle hilft bei der Definition von zwei abgeleiteten Klassen: FileSystemFileHandle und FileSystemDirectoryHandle, für Dateien bzw. Verzeichnisse.
Die Handles repräsentieren eine Datei oder ein Verzeichnis auf dem System des Benutzers. Sie können zuerst auf sie zugreifen, indem Sie dem Benutzer einen Datei- oder Verzeichnisauswahldialog mit Methoden wie window.showOpenFilePicker() und window.showDirectoryPicker() anzeigen. Sobald diese aufgerufen werden, präsentiert sich der Dateiauswahldialog und der Benutzer kann entweder eine Datei oder ein Verzeichnis auswählen. Nachdem dies erfolgreich passiert ist, wird ein Handle zurückgegeben.
Sie können auch über folgende Methoden auf Datei-Handles zugreifen:
Jedes Handle bietet seine eigene Funktionalität, und es gibt einige Unterschiede, je nachdem welches verwendet wird (siehe den Abschnitt Schnittstellen für spezifische Details). Sie können dann auf Dateidaten oder Informationen (einschließlich untergeordneter Elemente) des ausgewählten Verzeichnisses zugreifen. Diese API eröffnet Funktionalitäten, die dem Web bisher fehlten. Dennoch stand die Sicherheit bei der Gestaltung der API im Vordergrund, und der Zugriff auf die Datei-/Verzeichnisedaten ist nur möglich, wenn der Benutzer dies ausdrücklich gestattet (zu beachten ist, dass dies nicht auf das Origin private file system zutrifft, da es für den Benutzer nicht sichtbar ist).
Hinweis: Die verschiedenen Ausnahmen, die beim Verwenden der Funktionen dieser API ausgelöst werden können, sind auf den relevanten Seiten aufgeführt, wie in der Spezifikation definiert. Die Situation wird jedoch durch die Interaktion der API mit dem zugrundeliegenden Betriebssystem komplizierter. Es wurde ein Vorschlag gemacht, die Fehlermappings in der Spezifikation aufzulisten, der nützliche verwandte Informationen umfasst.
Hinweis: Objekte, die auf FileSystemHandle basieren, können auch in einer IndexedDB-Datenbankinstanz serialisiert oder über postMessage() übertragen werden.
Das Origin private file system (OPFS) ist ein Speicherendpunkt, der als Teil der File System API bereitgestellt wird. Es ist der Herkunft der Seite privat und nicht wie das reguläre Dateisystem für den Benutzer sichtbar. Es bietet Zugriff auf eine spezielle Art von Datei, die hochoptimiert für Leistung ist und einen direkten Schreibzugriff auf ihren Inhalt ermöglicht.
Die folgenden Anwendungsfälle sind möglich:
Apps mit persistentem Uploader
Videospiel oder andere Apps mit vielen Medienressourcen
Audio- oder Fotobearbeitungs-Apps mit Offline-Zugriff oder lokaler Cache (ideal für Leistung und Geschwindigkeit)
Offline-Videoanzeiger
Offline-Webmail-Client
Lesen Sie unseren Origin private file system für Anleitungen zur Nutzung.
Enthält Details zu einer einzelnen Änderung, die von einem FileSystemObserver beobachtet wurde.
FileSystemHandleEin Objekt, das einen Datei- oder Verzeichniseintrag darstellt. Mehrere Handles können denselben Eintrag repräsentieren. Meistens arbeiten Sie nicht direkt mit FileSystemHandle, sondern eher mit seinen abgeleiteten Schnittstellen FileSystemFileHandle und FileSystemDirectoryHandle.
FileSystemFileHandleBietet einen Handle zu einem Dateisystemeintrag.
FileSystemDirectoryHandleBietet einen Handle zu einem Dateisystemverzeichnis.
FileSystemObserverBietet einen Mechanismus, um Änderungen an ausgewählten Dateien oder Verzeichnissen zu beobachten.
FileSystemSyncAccessHandleBietet einen synchronen Handle zu einem Dateisystemeintrag, der vor Ort auf einer einzelnen Datei auf der Festplatte arbeitet. Die synchrone Natur der Dateioperationen ermöglicht eine höhere Leistung für kritische Methoden in Kontexten, in denen asynchrone Operationen mit hohem Overhead verbunden sind, z.B. WebAssembly. Diese Klasse ist nur innerhalb dedizierter Web Workers für Dateien innerhalb des origin private file system zugänglich.
FileSystemWritableFileStreamEin WritableStream-Objekt mit zusätzlichen Komfortmethoden, das auf einer einzelnen Datei auf der Festplatte arbeitet.
Zeigt einen Verzeichnisauswahldialog an, der es dem Benutzer erlaubt, ein Verzeichnis auszuwählen.
Window.showOpenFilePicker()Zeigt einen Dateiauswahldialog an, der es dem Benutzer erlaubt, eine oder mehrere Dateien auszuwählen.
Window.showSaveFilePicker()Zeigt einen Dateiauswahldialog an, der es dem Benutzer erlaubt, eine Datei zu speichern.
DataTransferItem.getAsFileSystemHandle()Gibt ein Promise zurück, das mit einem FileSystemFileHandle erfüllt wird, wenn das gezogene Element eine Datei ist, oder mit einem FileSystemDirectoryHandle, wenn das Element ein Verzeichnis ist.
StorageManager.getDirectory()Wird verwendet, um eine Referenz zu einem FileSystemDirectoryHandle-Objekt zu erhalten, das den Zugriff auf ein Verzeichnis und dessen Inhalte, gespeichert im origin private file system, ermöglicht. Gibt ein Promise zurück, das mit einem FileSystemDirectoryHandle-Objekt erfüllt wird.
Der untenstehende Code erlaubt es dem Benutzer, eine Datei aus dem Dateiauswahldialog auszuwählen.
Die folgende asynchrone Funktion präsentiert einen Dateiauswahldialog und verwendet nach der Auswahl einer Datei die Methode getFile(), um den Inhalt zu erhalten.
Das folgende Beispiel gibt ein Verzeichnishandle mit dem angegebenen Namen zurück. Falls das Verzeichnis nicht existiert, wird es erstellt.
Die folgende asynchrone Funktion verwendet resolve(), um den Pfad zu einer ausgewählten Datei relativ zu einem angegebenen Verzeichnishandle zu finden.
Die folgende asynchrone Funktion öffnet den Datei-Speicher-Dialog, der ein FileSystemFileHandle zurückgibt, sobald eine Datei ausgewählt wird. Anschließend wird ein schreibbarer Stream mit der Methode FileSystemFileHandle.createWritable() erstellt.
Ein benutzerdefinierter Blob wird dann in den Stream geschrieben, der anschließend geschlossen wird.
Die folgenden Beispiele zeigen verschiedene Optionen, die in die Methode write() übergeben werden können.
Dieses Beispiel liest und schreibt eine Datei synchron im origin private file system.
Der folgende asynchrone Ereignishandler befindet sich in einem Web Worker. Beim Empfang einer Nachricht vom Hauptthread:
Hinweis: In früheren Versionen der Spezifikation wurden close(), flush(), getSize() und truncate() unergonomisch als asynchrone Methoden spezifiziert. Dies wurde nun geändert, aber einige Browser unterstützen noch die asynchronen Versionen.
| File System |
| File System Access |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.