FileSystemObserver: observe() Methode

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. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.

Die observe()-Methode der FileSystemObserver-Schnittstelle fordert den Beobachter auf, Änderungen an einer angegebenen Datei oder an einem Verzeichnis zu beobachten.

Syntax

js
observe(handle)
observe(handle, options)

Parameter

handle

Der Handle des Dateisystemeintrags, der die zu beobachtende Datei oder das Verzeichnis darstellt.

options Optional

Ein Objekt, das Optionen für den observe()-Aufruf angibt. Es kann die folgenden Eigenschaften enthalten:

recursive

Ein boolescher Wert, der angibt, ob Sie Änderungen an einem Verzeichnis rekursiv beobachten möchten. Wenn auf true gesetzt, werden Änderungen im Verzeichnis selbst und in allen enthaltenen Unterverzeichnissen und Dateien beobachtet. Wenn auf false gesetzt, werden Änderungen nur im Verzeichnis selbst und in direkt enthaltenen Dateien beobachtet (d.h. Dateien in Unterverzeichnissen werden ausgeschlossen). Standardmäßig false.

Diese Eigenschaft hat keine Wirkung, wenn handle eine Datei darstellt.

Rückgabewert

Ein Promise, das sich zu undefined auflöst.

Ausnahmen

NotFoundError DOMException

Wird ausgelöst, wenn die durch handle dargestellte Datei oder das Verzeichnis nicht gefunden werden konnte.

Beispiele

Eine Datei oder ein Verzeichnis beobachten

Angenommen, eine FileSystemObserver-Instanz ist verfügbar, können Sie beginnen, Änderungen an einem Dateisystemeintrag zu beobachten, indem Sie observe() aufrufen.

Sie können eine Datei oder ein Verzeichnis im benutzerbeobachtbaren Dateisystem oder im Origin Private File System (OPFS) beobachten, indem Sie ein FileSystemFileHandle oder FileSystemDirectoryHandle zu observe() übergeben. Instanzen dieser Objekte können zum Beispiel zurückgegeben werden, wenn Sie den Benutzer auffordern, eine Datei oder ein Verzeichnis mit Window.showSaveFilePicker() oder Window.showDirectoryPicker() auszuwählen:

js
// 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 beobachten, indem Sie ein FileSystemSyncAccessHandle zu observe() übergeben:

js
// 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);
}

Ein Verzeichnis rekursiv beobachten

Um ein Verzeichnis rekursiv zu beobachten, rufen Sie observe() mit der recursive-Option auf true gesetzt auf:

js
// Observe a directory recursively
async function observeDirectory() {
  const directoryHandle = await window.showDirectoryPicker();

  await observer.observe(directoryHandle, { recursive: true });
}

Spezifikationen

Derzeit nicht Teil einer Spezifikation. Siehe https://github.com/whatwg/fs/pull/165 für den relevanten Spezifikations-PR.

Browser-Kompatibilität

Siehe auch