Spec-Zone.ru › Web APIs

FileSystemWritableFileStream: метод truncate()

Ограниченная доступность

Эта функция не относится к Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод truncate() интерфейса FileSystemWritableFileStream изменяет размер файла, связанного с потоком, до указанного размера в байтах.

Если указанный размер больше текущего размера файла, файл дополняется 0x00 байтами.

Позиция курсора файла также обновляется при вызове truncate(). Если смещение меньше размера, оно остается неизменным. Если смещение больше размера, смещение устанавливается в этот размер. Это гарантирует, что последующие записи не приведут к ошибке.

Изменения в фактическом файле на диске не записываются до тех пор, пока поток не будет закрыт. Изменения обычно записываются во временный файл вместо этого.

Синтаксис

truncate(size)

Параметры

size

Число, определяющее количество байтов, на которые нужно изменить размер потока.

Возвращаемое значение

Обещание Promise, которое возвращает undefined.

Исключения

NotAllowedError DOMException

Выбрасывается, если PermissionStatus.state не granted.

QuotaExceededError DOMException

Выбрасывается, если новый размер файла больше исходного размера файла и превышает квоту хранилища браузера storage quota.

TypeError

Выбрасывается, если size не является числом или не определено.

Примеры

Следующая асинхронная функция открывает диалог выбора файла 'Сохранить файл', который возвращает FileSystemFileHandle после выбора файла. Из этого создается поток для записи с помощью метода FileSystemFileHandle.createWritable().

Далее мы записываем в поток:

  1. В поток записывается строка текста.
  2. Метод truncate() используется для изменения размера файла на 8 байтов.
  3. Вторая строка текста записывается в начало потока, перезаписывая первую запись.

Поток затем закрывается.

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".

Спецификации

Спецификация
Система файлов
# api-filesystemwritablefilestream-truncate

Совместимость с браузерами

Рабочие столы Мобильные устройства
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

См. также

  • API системы файлов
  • API доступа к файловой системе: упрощение доступа к локальным файлам

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API