Heim > Web-Frontend > CSS-Tutorial > Erste Schritte mit der Dateisystemzugriffs -API

Erste Schritte mit der Dateisystemzugriffs -API

William Shakespeare
Freigeben: 2025-03-14 10:28:10
Original
689 Leute haben es durchsucht

Erste Schritte mit der Dateisystemzugriffs -API

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.

Zugriff auf Dateien: Lesen und Schreiben

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.

Lesen von Dateien: Einzeldatei

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;
};
Nach dem Login kopieren

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'}
Nach dem Login kopieren

fileHandle.getFile() ruft Dateidetails ab (zuletzt geändert Zeitstempel, Name, Größe, Typ) und file.text() extrahiert den Inhalt der Datei.

Mehrere Dateien lesen

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)
};
Nach dem Login kopieren

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,
};
Nach dem Login kopieren

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);
Nach dem Login kopieren

Schreiben in Dateien: Neue Datei

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;
};
Nach dem Login kopieren

window.showSaveFilePicker() öffnet das Dialogfeld "Datei speichern". handle.createWritable() erstellt einen beschreibbaren Stream, writable.write() schreibt Daten und writable.close() die Schreiboperation abschließt.

Bearbeiten vorhandener Dateien

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 ();
};
Nach dem Login kopieren

Dieses Beispiel findet den Text an. Um zu überschreiben, schreiben Sie den gesamten gewünschten Inhalt.

Erweiterte Funktionen

Die Dateisystemzugriffs -API unterstützt auch das Löschen von Verzeichnislisten und Dateien/Verzeichnissen.

Verzeichnisliste

 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);
  }
};
Nach dem Login kopieren

window.showDirectoryPicker() wählt ein Verzeichnis aus, und die Schleifen durch ihre Einträge iteriert.

Löschung der Datei und Verzeichnis

Löschen einer Datei:

 document.querySelector (". Pick-file"). onclick = async () => {
  const [FileHandle] = erwartet Window.ShowopenFilePicker ();
  Warten Sie FileHandle.remove ();
};
Nach dem Login kopieren

Löschen eines Verzeichnisses (rekursiv):

 document.querySelector (". Pick-Folder"). onclick = async () => {
  const DirectoryHandle = erwartet Window.showDirectoryPicker ();
  Warten Sie DirectoryHandle.removeEntry ('Data', {rekursiv: true});
};
Nach dem Login kopieren

Browserkompatibilität

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.

Ressourcen

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage