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
- Dateisystemzugriffs -API (W3C -Spezifikation)
- Dateisystemzugriffs -API (MDN)
- Andere relevante 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!

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.

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.

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

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.

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

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

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

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.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

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
Nützliche JavaScript-Entwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
