DirectoryEntrySync
Нестандартный: Эта функция нестандартна и не соответствует стандартам. Не используйте её на веб-сайтах в производстве: она может не работать для всех пользователей. Также могут быть существенные различия в реализации и поведение может измениться в будущем.
Устаревший: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её всё ещё поддерживать, она, возможно, уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохранена только для совместимости. Избегайте её использования и, по возможности, обновите существующий код; см. таблицу совместимости внизу этой страницы для принятия решения. Помните, что эта функция может перестать работать в любое время.
Интерфейс DirectoryEntrySync представляет собой директорию в файловой системе. Он включает методы для создания, чтения, поиска и рекурсивного удаления файлов в директории.
Предупреждение: Этот интерфейс устарел и больше не соответствует стандарту. Не используйте его больше. Используйте API файлов и элементов каталогов вместо этого.
Основные понятия
Если вы хотите создать подкаталоги, вам нужно создать каждый подкаталог последовательно. Если вы попытаетесь создать директорию, используя полный путь, который включает родительские директории, которые ещё не существуют, вы получите ошибку. Поэтому создавайте иерархию, рекурсивно добавляя новый путь после создания родительской директории.
Пример
Метод getFile() возвращает FileEntrySync, который представляет собой файл в файловой системе. Следующий код создаёт пустой файл с именем logs.txt в корневой директории.
const fileEntry = fs.root.getFile("logs.txt", { create: true });
Метод getDirectory() возвращает DirectoryEntrySync, который представляет собой файл в файловой системе. Следующий код создаёт новую директорию с именем project_dir в корневой директории.
const dirEntry = fs.root.getDirectory("project_dir", { create: true });
Обзор методов
Методы экземпляра
createReader()
Создаёт новый DirectoryReaderSync для чтения элементов из этой директории.
Синтаксис
createReader()
Параметры
Нет.
Возвращаемое значение
DirectoryReaderSync-
Представляет собой директорию в файловой системе.
Исключения
Этот метод может вызвать исключение DOMException со следующими кодами:
| Исключение | Описание |
|---|---|
NOT_FOUND_ERR | Директория не существует. |
SECURITY_ERR | Браузер определил, что безопасный доступ к метаданным невозможен. [ todo: Объяснить почему ] |
getFile()
В зависимости от настройки параметра options, метод либо создаёт файл, либо ищет существующий.
Синтаксис
getFile(path) getFile(path, options)
Параметры
path-
Абсолютный или относительный путь от директории к файлу, который необходимо найти или создать. Вы не можете создать файл, у которого непосредственный родительский каталог не существует. Сначала создайте родительский каталог.
options-
(необязательно) Объект, описывающий поведение метода. Если файл не существует, он создаётся.
| Объект | Условие | Результат |
|---|---|---|
create: trueexclusive: true
| Путь уже существует | Выбрасывается ошибка. |
create: trueexclusive: false
| Путь не существует и другие ошибки не возникают | Файл создаётся. Если файл уже существует, ошибка не возникает. |
create: false( exclusive игнорируется) | Путь существует | Возвращается файл. |
create: false( exclusive игнорируется) | Путь не существует | Выбрасывается ошибка. |
create: false( exclusive игнорируется) | Путь существует, но это директория | Выбрасывается ошибка. |
Возвращаемое значение
FileEntrySync-
Представляет файл в файловой системе.
Исключения
Этот метод может вызвать исключение DOMException со следующими кодами:
| Исключение | Описание |
|---|---|
ENCODING_ERR | Указанный путь некорректен. |
NOT_FOUND_ERR | Путь был структурно корректным, но ссылается на ресурс, которого нет. |
NO_MODIFICATION_ALLOWED_ERR | Проблема с разрешениями. Указанный каталог или файл недоступен для записи. |
PATH_EXISTS_ERR | Файл уже существует. Невозможно создать другой с тем же путём. |
QUOTA_EXCEEDED_ERROR | Операция привела бы к превышению квоты хранилища. |
SECURITY_ERR | Приложению нет разрешения на доступ к элементу, на который указывает путь. [ todo: Объяснить почему ] |
TYPE_MISMATCH_ERR | Указанный путь существует, но это не каталог. |
getDirectory()
Создаёт или находит директорию. Метод похож на getFile() с передачей DirectoryEntrySync.
Синтаксис
getDirectory(path) getDirectory(path, options)
Параметры
path-
Абсолютный или относительный путь от директории к файлу, который необходимо найти или создать. Вы не можете создать файл, у которого непосредственный родительский каталог не существует. Сначала создайте родительский каталог.
options-
(необязательно) Объект, описывающий поведение метода, если файл не существует.
| Объект | Условие | Результат |
|---|---|---|
create: trueexclusive: true
| Путь уже существует | Выбрасывается ошибка. |
create: trueexclusive: false
| Путь не существует и другие ошибки не возникают | Создаётся директория. Если файл уже существует, ошибка не возникает. |
create: false( exclusive игнорируется) | Путь существует | Возвращается директория. |
create: false( exclusive игнорируется) | Путь не существует | Выбрасывается ошибка. |
create: false( exclusive игнорируется) | Путь существует, но это директория | Выбрасывается ошибка. |
Возвращаемое значение
DirectoryEntrySync-
Представляет собой директорию в файловой системе.
Исключения
Этот метод может вызвать исключение DOMException со следующими кодами:
| Исключение | Описание |
|---|---|
ENCODING_ERR | Указанный путь некорректен. |
NOT_FOUND_ERR | Путь был структурно корректным, но ссылается на ресурс, которого нет. |
NO_MODIFICATION_ALLOWED_ERR | Проблема с разрешениями. Указанный каталог или файл недоступен для записи. |
PATH_EXISTS_ERR | Файл уже существует. Невозможно создать другой с тем же путём. |
QUOTA_EXCEEDED_ERROR | Операция привела бы к превышению квоты хранилища. |
SECURITY_ERR | Приложению нет разрешения на доступ к элементу, на который указывает путь. [ todo: Объяснить почему ] |
TYPE_MISMATCH_ERR | Указанный путь существует, но это не каталог. |
removeRecursively()
Удаляет директорию и всё её содержимое. Корневую директорию файловой системы удалить нельзя.
Если вы удаляете директорию, содержащую файл, который не удаляется, или при удалении возникает ошибка, некоторые элементы содержимого могут не быть удалены. Обрабатывайте такие случаи с помощью обратных вызовов ошибок и повторите попытку удаления.
Синтаксис
removeRecursively()
Параметры
Нет.
Значение возврата
undefined Исключения
Этот метод может вызвать DOMException с следующими кодами:
| Исключение | Описание |
|---|---|
NOT_FOUND_ERR | Целевая директория не существует. |
INVALID_STATE_ERR | Эта директория больше недействительна по какой-либо причине, кроме удаления. [todo: Уточнить] |
NO_MODIFICATION_ALLOWED_ERR | Один из следующих элементов не является доступным для записи: директория, её родительская директория и часть содержимого директории. |
SECURITY_ERR | Приложению не разрешено получить доступ к целевой директории, её родительской директории или части её содержимого. |
Спецификации
Эта функция не входит в состав текущих спецификаций. Она больше не находится на пути к стандартизации. Используйте API элементов файлов и каталогов вместо этого.
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
DirectoryEntrySync |
13 | 79 | Нет | Нет | Нет | 18 | Нет | Нет | Нет | 1.0 | 37 |
См. также
© 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/DirectoryEntrySync