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.
Die FileSystemObserver
-Schnittstelle der File System API bietet einen Mechanismus, um Änderungen am für den Benutzer sichtbaren Dateisystem und dem Origin Private File System (OPFS) zu überwachen. Dies bedeutet, dass Webanwendungen das Dateisystem nicht mehr ständig abfragen müssen, um Änderungen in der Struktur von Dateien oder Ordnern zu erkennen, was zeitaufwendig und ineffizient sein kann.
Konstruktor
FileSystemObserver()
Experimentell Nicht standardisiert-
Erstellt eine neue Instanz des
FileSystemObserver
-Objekts.
Instanzmethoden
disconnect()
Experimentell Nicht standardisiert-
Beendet die Überwachung des Dateisystems.
observe()
Experimentell Nicht standardisiert-
Beginnt, Änderungen an einer bestimmten Datei oder einem Verzeichnis zu überwachen.
Beispiele
Hinweis: Für ein vollständiges funktionierendes Beispiel, sehen Sie sich die File System Observer Demo an (Quellcode).
Initialisieren eines FileSystemObserver
Bevor Sie mit der Überwachung von Datei- oder Verzeichnisänderungen beginnen können, müssen Sie einen FileSystemObserver
initialisieren, um die Beobachtungen zu verwalten. Dies wird durch den FileSystemObserver()
-Konstruktor durchgeführt, der eine Callback-Funktion als Argument benötigt:
const observer = new FileSystemObserver(callback);
Der Callback-Funktions-Körper kann spezifiziert werden, um die Beobachtungen von Dateiänderungen auf beliebige Weise zu verarbeiten und zurückzugeben:
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 FileSystemObserver
-Instanz verfügbar ist, können Sie Änderungen an einem Eintrag im Dateisystem beobachten, 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 ein FileSystemFileHandle
oder FileSystemDirectoryHandle
an observe()
übergeben. Instanzen dieser Objekte können zum Beispiel 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 am OPFS überwachen, indem Sie ein FileSystemSyncAccessHandle
an observe()
ü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 Überwachung des Dateisystems
Wenn Sie die Überwachung von Änderungen am Dateisystemeintrag beenden möchten, können Sie FileSystemObserver.disconnect()
aufrufen:
observer.disconnect();
Spezifikationen
Gehört derzeit nicht zu einer Spezifikation. Siehe https://github.com/whatwg/fs/pull/165 für den relevanten Spezifikations-PR.
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
FileSystemObserver | ||||||||||||
FileSystemObserver() constructor | ||||||||||||
disconnect | ||||||||||||
observe |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- In development. Supported in a pre-release version.
- In development. Supported in a pre-release version.
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Non-standard. Check cross-browser support before using.
Siehe auch
- File System API
- Die File System Observer API Origin Trial auf developer.chrome.com (2024)