Spec-Zone.ru › Web APIs

FileSystemSyncAccessHandle

Базовая версия 2023
Новое

С марта 2023 года эта функция работает на последних версиях устройств и браузеров. Возможно, эта функция не будет работать на более старых устройствах или браузерах.

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

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

Примечание: Эта функция доступна только в посвященных веб-воркерах.

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

Этот класс доступен только внутри посвященных веб-воркеров (чтобы его методы не блокировали выполнение в основном потоке) для файлов в частной файловой системе происхождения, которая не видна конечным пользователям.

В результате его методы не подвергаются тем же проверкам безопасности, что и методы, работающие с файлами в отображаемой пользователям файловой системе, и поэтому значительно более производительны. Это делает их подходящими для значительных масштабных обновлений файлов, таких как изменения в базе данных SQLite.

Интерфейс доступен через метод FileSystemFileHandle.createSyncAccessHandle().

Примечание: В более ранних версиях спецификации close(), flush(), getSize() и truncate() были ошибочно указаны как асинхронные методы, и более старые версии некоторых браузеров реализуют их таким образом. Однако все современные браузеры, поддерживающие эти методы, реализуют их как синхронные методы.

Свойства экземпляра

Нет.

Методы экземпляра

close()

Закрывает открытую синхронную ссылку на файл, отключая любые дальнейшие операции с ней и освобождая эксклюзивную блокировку, ранее установленную на файле, связанном со ссылкой на файл.

flush()

Сохраняет любые изменения, внесенные в файл, связанный со ссылкой, посредством метода write(), на диск.

getSize()

Возвращает размер файла, связанного со ссылкой, в байтах.

read()

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

truncate()

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

write()

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

Примеры

Следующая асинхронная функция обработчика событий находится внутри веб-воркера. При получении сообщения из основного потока она:

  • Создает синхронную ссылку на доступ к файлу.
  • Получает размер файла и создает ArrayBuffer для его хранения.
  • Считывает содержимое файла в буфер.
  • Кодирует сообщение и записывает его в конец файла.
  • Сохраняет изменения на диске и закрывает ссылку на доступ.
onmessage = async (e) => {
  // Retrieve message sent to work from main script
  const message = e.data;

  // Get handle to draft file
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  // Get sync access handle
  const accessHandle = await draftHandle.createSyncAccessHandle();

  // Get size of the file.
  const fileSize = accessHandle.getSize();
  // Read file content to a buffer.
  const buffer = new DataView(new ArrayBuffer(fileSize));
  const readBuffer = accessHandle.read(buffer, { at: 0 });

  // Write the message to the end of the file.
  const encoder = new TextEncoder();
  const encodedMessage = encoder.encode(message);
  const writeBuffer = accessHandle.write(encodedMessage, { at: readBuffer });

  // Persist changes to disk.
  accessHandle.flush();

  // Always close FileSystemSyncAccessHandle if done.
  accessHandle.close();
};

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

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

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
FileSystemSyncAccessHandle 102 102 111 88 15.2 109 111 74 15.2 21.0 109
close 102 102 111 88 15.2 109 111 74 15.2 21.0 109
flush 102 102 111 88 15.2 109 111 74 15.2 21.0 109
getSize 102 102 111 88 15.2 109 111 74 15.2 21.0 109
read 102 102 111 88 15.2 109 111 74 15.2 21.0 109
truncate 102 102 111 88 15.2 109 111 74 15.2 21.0 109
write 102 102 111 88 15.2 109 111 74 15.2 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/FileSystemSyncAccessHandle

Spec-Zone.ru

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