FileSystemHandle
Baseline 2023 *
Новое
С марта 2023 года эта функция работает на последних устройствах и версиях браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Интерфейс FileSystemHandle API файловой системы — это объект, представляющий запись файла или каталога. Несколько обработчиков могут представлять одну и ту же запись. В основном вы работаете не с FileSystemHandle напрямую, а с его дочерними интерфейсами FileSystemFileHandle и FileSystemDirectoryHandle.
Интерфейсы, основанные на FileSystemHandle
Ниже представлен список интерфейсов, основанных на интерфейсе FileSystemHandle.
FileSystemFileHandle-
Представляет обработчик записи файла.
FileSystemDirectoryHandle-
Предоставляет обработчик записи каталога.
Свойства экземпляра
Методы экземпляра
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 |
См. также
© 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