suchen
HeimWeb-FrontendCSS-TutorialErste Schritte mit der Dateisystemzugriffs -API

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;
};

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.

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

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);

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;
};

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 ();
};

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

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 ();
};

Löschen eines Verzeichnisses (rekursiv):

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

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!

Stellungnahme
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
CSS Flexbox vs Grid: Eine umfassende ÜberprüfungCSS Flexbox vs Grid: Eine umfassende ÜberprüfungMay 12, 2025 am 12:01 AM

Die Auswahl von Flexbox oder Grid hängt von den Layoutanforderungen ab: 1) Flexbox ist für eindimensionale Layouts wie die Navigationsleiste geeignet. 2) Das Gitter eignet sich für zweidimensionale Layouts wie Zeitschriftenlayouts. Die beiden können im Projekt verwendet werden, um den Layout -Effekt zu verbessern.

So füge CSS -Dateien ein: Methoden und Best PracticesSo füge CSS -Dateien ein: Methoden und Best PracticesMay 11, 2025 am 12:02 AM

Der beste Weg, um CSS -Dateien einzubeziehen, besteht darin, Tags zu verwenden, um externe CSS -Dateien in den HTML -Teil einzuführen. 1. Verwenden Sie Tags, um externe CSS -Dateien einzuführen, wie z. 2. Für kleine Anpassungen können Inline -CSS verwendet werden, sollten jedoch mit Vorsicht verwendet werden. 3. Große Projekte können CSS -Präprozessoren wie SASS oder weniger verwenden, um andere CSS -Dateien über @import zu importieren. 4. Für die Leistung sollten CSS -Dateien zusammengeführt und CDN verwendet und mit Tools wie CSSNano komprimiert werden.

Flexbox vs Grid: Soll ich sie beide lernen?Flexbox vs Grid: Soll ich sie beide lernen?May 10, 2025 am 12:01 AM

Ja, youShouldlearnbothflexBoxandgrid.1) FlexBoxiSidealfore-dimensional, flexibelayoutslikenAvigationMenus.2) GridexcelStwo-dimensional, komplexDesignsuchasmagazinelayouts.3) Kombininierungs-Botenhances-Flexible-und-und -Anteilungskraft, und -forsfossivität,

Orbitalmechanik (oder wie ich eine CSS -Keyframes -Animation optimiert habe)Orbitalmechanik (oder wie ich eine CSS -Keyframes -Animation optimiert habe)May 09, 2025 am 09:57 AM

Wie sieht es aus, Ihren eigenen Code neu zu gestalten? John Rhea nimmt eine alte CSS -Animation auseinander, die er geschrieben hat, und geht durch den Denkprozess der Optimierung.

CSS -Animationen: Ist es schwierig, sie zu erstellen?CSS -Animationen: Ist es schwierig, sie zu erstellen?May 09, 2025 am 12:03 AM

CsSanimationsarenotinherenthardbutRequirePractICEANDUnDing-fordertofcsPropertiesandTimingfunktionen.1) StartwithsimpleanimationslikescalingabuttononoversKeyFrames.2) useaSingFunctionslikecubic-BezierForteffects, SuchasabouNects, SuchasabouNects,, zu

@Keyframes CSS: Die am häufigsten verwendeten Tricks@Keyframes CSS: Die am häufigsten verwendeten TricksMay 08, 2025 am 12:13 AM

@KeyFramesispopulardUeToitSverSatility und PowerIncreatingsmoothcsSanimations.KectrickSinclude: 1) DefiningsmoothTransitionSbetTates, 2) AnimatingMultipleProperTiesimultan, 3) mit VendorprefixesforBrowserCompatible, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren

CSS -Zähler: Eine umfassende Anleitung zur automatischen NummerierungCSS -Zähler: Eine umfassende Anleitung zur automatischen NummerierungMay 07, 2025 pm 03:45 PM

CSSCOUSTERSSARUSTOMANAGEAUTOMATICNUMBERINGINWEBDEsigns.1) Sie konzipieren SieForsofcontents, ListItems und CustomNumbering.2) AdvanceduSesincnednumberingSystem.3) CHEFORDIGESINCLUDSERCOMPATIBILIBLEISE.4) CreativeuSinvolvecustInance

Moderne Bildlaufschatten mit scrollengetriebenen AnimationenModerne Bildlaufschatten mit scrollengetriebenen AnimationenMay 07, 2025 am 10:34 AM

Die Verwendung von Scroll -Schatten, insbesondere für mobile Geräte, ist ein subtiles Stück UX, das Chris zuvor abgedeckt hat. Geoff deckte einen neueren Ansatz ab, der die Immobilie der Animationszeit verwendet. Hier ist ein anderer Weg.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool