Die Dateisystemzugriffs -API bietet Webentwicklern ein leistungsstarkes Tool für die direkte Interaktion mit den lokalen Dateien eines Benutzers und aktiviert das Lese- und Schreibzugriff. Dies eröffnet aufregende Möglichkeiten für den Aufbau von ausgefeilten Webanwendungen, einschließlich fortschrittlicher Texteditoren, IDEs, Bildmanipulationstools und verbesserten Import-/Exportfunktionen - alle innerhalb des Frontend des Browsers. Lassen Sie uns untersuchen, wie Sie mit dieser API beginnen.
Ein kritischer Aspekt bei der Verwendung der Dateisystemzugriffs -API ist die Sicherheit. Alle API -Anrufe müssen von einer Benutzergeste in einem sicheren Kontext initiiert werden. Wir werden in den folgenden Beispielen ein Klickereignis verwenden.
Das Lesen einer einzelnen Datei ist bemerkenswert präzise:
Dateihandle lassen; document.querySelector (". Pick-file"). onclick = async () => { [FileHandle] = erwarten window.showopenFilePicker (); const File = warte FileHandle.getFile (); const content = warte Datei.text (); Inhalt zurückgeben; };
Unter der Annahme einer HTML-Schaltfläche mit der Klasse "Pick-File" löst das Klicken auf diese Schaltfläche über window.showOpenFilePicker()
den Datei-Picker aus. Das Handle der ausgewählten Datei wird in fileHandle
gespeichert. Die Funktion gibt den Inhalt der Datei als Text zurück.
Das fileHandle
-Objekt bietet Eigenschaften wie kind
(entweder "Datei" oder "Verzeichnis") und name
.
// Beispielausgabe von Console.log (DateiHandle) DateiSystemFileHandle {Art: 'Datei', Name: 'Data.txt'}
fileHandle.getFile()
ruft Dateidetails ab (zuletzt geändert Zeitstempel, Name, Größe, Typ) und file.text()
extrahiert den Inhalt der Datei.
Um mehrere Dateien zu lesen, übergeben Sie ein Optionsobjekt an showOpenFilePicker()
:
Dateihändler lassen; const options = {multiple: true}; document.querySelector (". Pick-file"). onclick = async () => { FileHandles = Awit window.showopenFilePicker (Optionen); // Code zum Verarbeiten mehrerer Dateien (siehe unten) };
Die multiple
Eigenschaft (Standard: false
) ermöglicht mehrere Dateiauswahl. Weitere Optionen geben akzeptable Dateitypen an. Zum Beispiel nur JPEG -Bilder zu akzeptieren:
const options = { Typen: [{Beschreibung: "Bilder", Akzeptieren: {"Image/jpeg": ".jpeg"}}], AusschlussabnahmeAlption: Richtig, };
Verarbeitung mehrerer Dateien:
const AllContent = warte auf Promise.all ( FileHandles.map (async (DateiHandle) => { const File = warte FileHandle.getFile (); const content = warte Datei.text (); Inhalt zurückgeben; }) ); console.log (AllContent);
Das Erstellen und Schreiben in eine neue Datei ist ebenso einfach:
document.querySelector (". Save-file"). onclick = async () => { const options = { Typen: [{Beschreibung: "Testen", Akzeptieren: {"text/plain": [".txt"]}}], }; const handle = waait window.showsaveFilePicker (Optionen); const schreibbar = warte griff.createwrable (); erwarten Sie beschreibbar.write ("Hallo Welt"); erwarten beschreibbar.close (); Rückgang; };
window.showSaveFilePicker()
öffnet das Dialogfeld "Datei speichern". handle.createWritable()
erstellt einen beschreibbaren Stream, writable.write()
schreibt Daten und writable.close()
die Schreiboperation abschließt.
So ändern Sie eine vorhandene Datei:
Dateihandle lassen; document.querySelector (". Pick-file"). onclick = async () => { [FileHandle] = erwarten window.showopenFilePicker (); const File = warte FileHandle.getFile (); const writable = warte ayHandle.createwrable (); Warten Sie beschreibbar.write ("Dies ist eine neue Linie"); // endet mit der Datei an erwarten beschreibbar.close (); };
Dieses Beispiel findet den Text an. Um zu überschreiben, schreiben Sie den gesamten gewünschten Inhalt.
Die Dateisystemzugriffs -API unterstützt auch das Löschen von Verzeichnislisten und Dateien/Verzeichnissen.
document.querySelector (". Read-dir"). onclick = async () => { const DirectoryHandle = erwartet Window.showDirectoryPicker (); Für warten (const Eintrag von DirectoryHandle.Values ()) { console.log (Eintrag.kind, Eintrag.name); } };
window.showDirectoryPicker()
wählt ein Verzeichnis aus, und die Schleifen durch ihre Einträge iteriert.
Löschen einer Datei:
document.querySelector (". Pick-file"). onclick = async () => { const [FileHandle] = erwartet Window.ShowopenFilePicker (); Warten Sie FileHandle.remove (); };
Löschen eines Verzeichnisses (rekursiv):
document.querySelector (". Pick-Folder"). onclick = async () => { const DirectoryHandle = erwartet Window.showDirectoryPicker (); Warten Sie DirectoryHandle.removeEntry ('Data', {rekursiv: true}); };
Die Datei-Access-API-API wird in modernen Browsern weit verbreitet. Überprüfen Sie jedoch Caniuse.com auf die aktuellsten Kompatibilitätsinformationen. Eine PonyFill wie browser-fs-access
kann Kompatibilitätslücken ansprechen.
Diese erweiterte Erklärung bietet eine umfassendere und strukturiertere Anleitung zur Datei -Access -API. Denken Sie daran, Platzhalter -Links durch tatsächliche Links zu relevanten Dokumentationen zu ersetzen.
Das obige ist der detaillierte Inhalt vonErste Schritte mit der Dateisystemzugriffs -API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!