Spec-Zone.ru › Web APIs

FileSystemHandle

Baseline 2023 *
Новое

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

* Некоторые части этой функции могут иметь различный уровень поддержки.

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

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

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

Интерфейс FileSystemHandle API файловой системы — это объект, представляющий запись файла или каталога. Несколько обработчиков могут представлять одну и ту же запись. В основном вы работаете не с FileSystemHandle напрямую, а с его дочерними интерфейсами FileSystemFileHandle и FileSystemDirectoryHandle.

Интерфейсы, основанные на FileSystemHandle

Ниже представлен список интерфейсов, основанных на интерфейсе FileSystemHandle.

FileSystemFileHandle

Представляет обработчик записи файла.

FileSystemDirectoryHandle

Предоставляет обработчик записи каталога.

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

kind Только для чтения

Возвращает тип записи. Это 'file' , если связанная запись — файл, или 'directory'.

name Только для чтения

Возвращает имя связанной записи.

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

isSameEntry()

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

queryPermission() Экспериментальная

Запрашивает текущее состояние разрешения для текущего обработчика.

remove() Экспериментальная Нестандартная

Запрашивает удаление записи, представленной обработчиком, из базовой файловой системы.

requestPermission() Экспериментальная

Запрашивает разрешение на чтение или запись для обработчика файла.

Примеры

Проверка типа

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

// store a reference to our file handle
let fileHandle;

async function getFile() {
  // open file picker
  [fileHandle] = await window.showOpenFilePicker();

  if (fileHandle.kind === "file") {
    // run file code
  } else if (fileHandle.kind === "directory") {
    // run directory code
  }
}

Запрос/Получение разрешений

Следующая асинхронная функция возвращает true, если пользователь предоставил разрешение на чтение или запись для обработчика файла. Разрешение запрашивается, если оно отсутствует.

// fileHandle is a FileSystemFileHandle
// withWrite is a boolean set to true if write

async function verifyPermission(fileHandle, withWrite) {
  const opts = {};
  if (withWrite) {
    opts.mode = "readwrite";
  }

  // Check if we already have permission, if so, return true.
  if ((await fileHandle.queryPermission(opts)) === "granted") {
    return true;
  }

  // Request permission to the file, if the user grants permission, return true.
  if ((await fileHandle.requestPermission(opts)) === "granted") {
    return true;
  }

  // The user did not grant permission, return false.
  return false;
}

Сравнение записей

Следующая функция сравнивает одну запись с массивом записей и возвращает новый массив с удалёнными совпадающими записями.

function removeMatches(fileEntry, entriesArr) {
  const newArr = entriesArr.filter((entry) => !fileEntry.isSameEntry(entry));

  return newArr;
}

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

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

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
FileSystemHandle 86 86 111 72 15.2 109 111 74 15.2 21.0 109
isSameEntry 86 86 111 72 15.2 109 111 74 15.2 21.0 109
kind 86 86 111 72 15.2 109 111 74 15.2 21.0 109
move Нет Нет 111 Нет 15.2 Нет 111 Нет 15.2 Нет Нет
name 86 86 111 72 15.2 109 111 74 15.2 21.0 109
queryPermission 86 86 Нет 72 Нет 109 Нет 74 Нет 21.0 109
remove 110 110 Нет 96 Нет 110 Нет 74 Нет 21.0 110
requestPermission 86 86 Нет 72 Нет 109 Нет 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/FileSystemHandle

Spec-Zone.ru

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