Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
FileSystemWritableFileStream: truncate() Methode
Baseline 2025Newly available
Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
Dietruncate() Methode derFileSystemWritableFileStream-Schnittstelle ändert die Größe der Datei, die mit dem Stream verknüpft ist, auf die angegebene Größe in Bytes.
Wenn die angegebene Größe größer als die aktuelle Dateigröße ist, wird die Datei mit0x00 Bytes aufgefüllt.
Der Dateicursor wird ebenfalls aktualisiert, wenntruncate() aufgerufen wird. Wenn der Offset kleiner als die Größe ist, bleibt er unverändert. Ist der Offset größer als die Größe, wird der Offset auf diese Größe gesetzt. Dies stellt sicher, dass nachfolgende Schreibvorgänge keine Fehler erzeugen.
Keine Änderungen werden auf die tatsächliche Datei auf dem Datenträger geschrieben, bis der Stream geschlossen wurde. Änderungen werden typischerweise in einer temporären Datei geschrieben.
In diesem Artikel
Syntax
truncate(size)Parameter
sizeEine Zahl, die angibt, auf wie viele Bytes der Stream verkleinert werden soll.
Rückgabewert
EinPromise, derundefined zurückgibt.
Ausnahmen
NotAllowedErrorDOMExceptionWird ausgelöst, wenn
PermissionStatus.statenichtgrantedist.QuotaExceededErrorWird ausgelöst, wenn die neue Größe der Datei größer als die ursprüngliche Größe der Datei ist und dasSpeicherlimit des Browsers überschreitet.
TypeErrorWird ausgelöst, wenn
sizekeine Zahl oder nicht definiert ist.
Beispiele
Die folgende asynchrone Funktion öffnet den 'Datei speichern' Dialog, der einenFileSystemFileHandle zurückgibt, sobald eine Datei ausgewählt wurde. Daraus wird ein beschreibbarer Stream mit Hilfe der MethodeFileSystemFileHandle.createWritable() erstellt.
Anschließend schreiben wir in den Stream:
- Ein Textstring wird in den Stream geschrieben.
- Die
truncate()Methode wird verwendet, um die Datei auf 8 Bytes zu verkleinern. - Ein zweiter Textstring wird an den Anfang des Streams geschrieben und überschreibt den ersten Schreibvorgang.
Der Stream wird dann geschlossen.
async function saveFile() { try { // create a new handle const newHandle = await window.showSaveFilePicker(); // create a FileSystemWritableFileStream to write to const writableStream = await newHandle.createWritable(); // write our file await writableStream.write("This is my first file content"); await writableStream.truncate(8); await writableStream.write("my second file content"); // close the file and write the contents to disk. await writableStream.close(); } catch (err) { console.error(err.name, err.message); }}Wenn Sie die obige Funktion ausführen und dann die resultierende Datei auf der Festplatte öffnen, sollten Sie den Text "This is my second file content" sehen.
Spezifikationen
| Specification |
|---|
| File System> # api-filesystemwritablefilestream-truncate> |