FileSystemObserver
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.
Das FileSystemObserver
-Interface der File System API bietet einen Mechanismus, um Änderungen im für den Benutzer sichtbaren Dateisystem und dem Origin Private File System (OPFS) zu beobachten. Das bedeutet, dass Webanwendungen das Dateisystem nicht ständig abfragen müssen, um Änderungen in der Datei- oder Ordnerstruktur zu erkennen, was zeitaufwändig und ineffizient sein kann.
Konstruktor
FileSystemObserver()
Experimentell Nicht standardisiert-
Erstellt eine neue Instanz des
FileSystemObserver
-Objekts.
Instanzmethoden
disconnect()
Experimentell Nicht standardisiert-
Beendet die Beobachtung des Dateisystems.
observe()
Experimentell Nicht standardisiert-
Beginnt mit der Beobachtung von Änderungen an einer bestimmten Datei oder einem Verzeichnis.
Beispiele
Hinweis: Für ein vollständiges funktionierendes Beispiel schauen Sie sich die File System Observer Demo (Quellcode) an.
Initialisieren eines FileSystemObserver
Bevor Sie mit der Beobachtung von Datei- oder Verzeichnisänderungen beginnen können, müssen Sie einen FileSystemObserver
initialisieren, um die Beobachtungen zu verarbeiten. Dies geschieht mit dem FileSystemObserver()
-Konstruktor, der eine Callback-Funktion als Argument nimmt:
const observer = new FileSystemObserver(callback);
Der Rückruffunktion-Körper kann so definiert werden, dass er Dateienänderungsbeobachtungen in beliebiger Weise zurückgibt und verarbeitet:
const callback = (records, observer) => {
for (const record of records) {
console.log("Change detected:", record);
const reportContent = `Change observed to ${record.changedHandle.kind} ${record.changedHandle.name}. Type: ${record.type}.`;
sendReport(reportContent); // Some kind of user-defined reporting function
}
observer.disconnect();
};
Beobachten einer Datei oder eines Verzeichnisses
Sobald eine Instanz von FileSystemObserver
verfügbar ist, können Sie mit der Beobachtung von Änderungen an einem Dateisystemeintrag beginnen, indem Sie die Methode FileSystemObserver.observe()
aufrufen.
Sie können eine Datei oder ein Verzeichnis im für den Benutzer sichtbaren Dateisystem oder im Origin Private File System (OPFS) beobachten, indem Sie observe()
einen FileSystemFileHandle
oder FileSystemDirectoryHandle
übergeben. Instanzen dieser Objekte können beispielsweise zurückgegeben werden, wenn Sie den Benutzer bitten, eine Datei oder ein Verzeichnis mit Window.showSaveFilePicker()
oder Window.showDirectoryPicker()
auszuwählen:
// Observe a file
async function observeFile() {
const fileHandle = await window.showSaveFilePicker();
await observer.observe(fileHandle);
}
// Observe a directory
async function observeDirectory() {
const directoryHandle = await window.showDirectoryPicker();
await observer.observe(directoryHandle);
}
Sie können auch Änderungen im OPFS beobachten, indem Sie observe()
einen FileSystemSyncAccessHandle
übergeben:
// Observe an OPFS file system entry
async function observeOPFSFile() {
const root = await navigator.storage.getDirectory();
const draftHandle = await root.getFileHandle("draft.txt", { create: true });
const syncHandle = await draftHandle.createSyncAccessHandle();
await observer.observe(syncHandle);
}
Beenden der Beobachtung des Dateisystems
Wenn Sie die Beobachtung von Änderungen an einem Dateisystemeintrag beenden möchten, können Sie FileSystemObserver.disconnect()
aufrufen:
observer.disconnect();
Spezifikationen
Derzeit nicht Teil einer Spezifikation. Siehe https://github.com/whatwg/fs/pull/165 für den relevanten Spezifikations-PR.
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- File System API
- The File System Observer API origin trial auf developer.chrome.com (2024)