FileSystemWritableFileStream: truncate() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die truncate()
Methode der FileSystemWritableFileStream
-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 mit 0x00
Bytes aufgefüllt.
Der Dateicursor wird ebenfalls aktualisiert, wenn truncate()
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.
Syntax
truncate(size)
Parameter
size
-
Eine Zahl, die angibt, auf wie viele Bytes der Stream verkleinert werden soll.
Rückgabewert
Ein Promise
, der undefined
zurückgibt.
Ausnahmen
NotAllowedError
DOMException
-
Wird ausgelöst, wenn
PermissionStatus.state
nichtgranted
ist. QuotaExceededError
-
Wird ausgelöst, wenn die neue Größe der Datei größer als die ursprüngliche Größe der Datei ist und das Speicherlimit des Browsers überschreitet.
TypeError
-
Wird ausgelöst, wenn
size
keine Zahl oder nicht definiert ist.
Beispiele
Die folgende asynchrone Funktion öffnet den 'Datei speichern' Dialog, der einen FileSystemFileHandle
zurückgibt, sobald eine Datei ausgewählt wurde. Daraus wird ein beschreibbarer Stream mit Hilfe der Methode FileSystemFileHandle.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> |
Browser-Kompatibilität
Loading…