FileSystemWritableFileStream: метод truncate()
Ограниченная доступность
Эта функция не относится к Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод truncate() интерфейса FileSystemWritableFileStream изменяет размер файла, связанного с потоком, до указанного размера в байтах.
Если указанный размер больше текущего размера файла, файл дополняется 0x00 байтами.
Позиция курсора файла также обновляется при вызове truncate(). Если смещение меньше размера, оно остается неизменным. Если смещение больше размера, смещение устанавливается в этот размер. Это гарантирует, что последующие записи не приведут к ошибке.
Изменения в фактическом файле на диске не записываются до тех пор, пока поток не будет закрыт. Изменения обычно записываются во временный файл вместо этого.
Синтаксис
truncate(size)
Параметры
size-
Число, определяющее количество байтов, на которые нужно изменить размер потока.
Возвращаемое значение
Обещание Promise, которое возвращает undefined.
Исключения
-
NotAllowedErrorDOMException -
Выбрасывается, если
PermissionStatus.stateнеgranted. -
QuotaExceededErrorDOMException -
Выбрасывается, если новый размер файла больше исходного размера файла и превышает квоту хранилища браузера storage quota.
TypeError-
Выбрасывается, если
sizeне является числом или не определено.
Примеры
Следующая асинхронная функция открывает диалог выбора файла 'Сохранить файл', который возвращает FileSystemFileHandle после выбора файла. Из этого создается поток для записи с помощью метода FileSystemFileHandle.createWritable().
Далее мы записываем в поток:
- В поток записывается строка текста.
- Метод
truncate()используется для изменения размера файла на 8 байтов. - Вторая строка текста записывается в начало потока, перезаписывая первую запись.
Поток затем закрывается.
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);
}
}
Если вы запустите эту функцию, а затем откроете созданный на диске файл, вы увидите текст "This is my second file content".
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
truncate |
86 | 86 | 111 | 72 | Нет | 109 | 111 | 74 | Нет | 21.0 | 109 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate