DirectoryEntry
Этот объект представляет каталог в файловой системе, как определено в спецификации W3C каталогов и систем .
Свойства
isFile: всегда
false
. (логический)isDirectory: всегда
true
. (логический)имя: имя
DirectoryEntry
, исключая путь, ведущий к нему. (DOMString)полный путь: полный абсолютный путь от корня к
DirectoryEntry
. (DOMString)
Примечание: Следующий атрибут определен в спецификации W3C, но не поддерживается:
- Файловая система: файловая система, на которой
DirectoryEntry
проживает. (Файловая система)
Методы
Следующие методы могут быть вызваны на DirectoryEntry
объект:
getMetadata: искать метаданные каталога.
setMetadata: задать метаданные каталога.
moveTo: переместить каталог в другое место в файловой системе.
copyTo: копирования каталога в другое место в файловой системе.
toURL: Возвращает URL-адрес, чтобы помочь найти каталог.
Удалить: удалить каталог. Каталог должен быть пустым.
getParent: Посмотрите вверх родительского каталога.
createReader: создать новую
[DirectoryReader](../directoryreader/directoryreader.html)
, можно читать записи из каталога.getDirectory: создать или найти каталог.
getFile: создать или найти файл.
removeRecursively: удалить каталог и все его содержимое.
Поддерживаемые платформы
- Андроид
- WebWorks ежевики (OS 5.0 и выше)
- iOS
- Windows Phone 7 и 8
- ОС Windows 8
getMetadata
Поиск метаданных каталога.
Параметры:
successCallback: функцию обратного вызова для выполнения с
Metadata
объект. (Функция)errorCallback: функцию обратного вызова для выполнения, если происходит ошибка при получении
Metadata
. Вызываемый с[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
Функция success(metadata) {console.log («последнего изменения: «+ metadata.modificationTime);}
Функция fail(error) {alert(error.code)};
/ / Запрос объекта метаданных для этой записи entry.getMetadata (успех, неудача);
setMetadata
Устанавливает дополнительные атрибуты каталога или метаданные. В настоящее время работает только на iOS.
Параметры:
successCallback: обратного вызова, который выполняется, когда метаданные успешно установлены. (Функция)
errorCallback: обратного вызова, который выполняется, когда метаданные не удается установить. (Функция)
метаданных (MetadataObject): объект, содержащий ключи и значения метаданных. (Объект)
Быстрый пример
function success() {
console.log("The metadata was successfully set.");
}
function fail() {
alert("There was an error in setting the metadata");
}
// Set the metadata
entry.setMetadata(success, fail, { "com.apple.MobileBackup": 1});
iOS галтель
- Только
com.apple.MobileBackup
поддерживается Расширенный атрибут. Задайте значение1
для предотвращения в каталог резервного копирования для iCloud. Задайте значение `` для повторного включения в каталог для резервного копирования в iCloud.
Быстрый пример
function setFolderMetadata(localFileSystem, subFolder, metadataKey, metadataValue)
{
var onSetMetadataWin = function() {
console.log("success setting metadata")
}
var onSetMetadataFail = function() {
console.log("error setting metadata")
}
var onGetDirectoryWin = function(parent) {
var data = {};
data[metadataKey] = metadataValue;
parent.setMetadata(onSetMetadataWin, onSetMetadataFail, data);
}
var onGetDirectoryFail = function() {
console.log("error getting dir")
}
var onFSWin = function(fileSystem) {
fileSystem.root.getDirectory(subFolder, {create: true, exclusive: false}, onGetDirectoryWin, onGetDirectoryFail);
}
var onFSFail = function(evt) {
console.log(evt.target.error.code);
}
window.requestFileSystem(localFileSystem, 0, onFSWin, onFSFail);
}
setFolderMetadata(LocalFileSystem.PERSISTENT, "Backups", "com.apple.MobileBackup", 1);
moveTo
Переместите каталог в другое место в файловой системе. Если приложение пытается приводит к ошибке:
Переместите каталог внутри себя или любому ребенку на любой глубине.
Переместите каталог в его родителя, если не указано имя, отличное от текущего каталога.
Переместите каталог в путь, занимаемых файл.
Переместите каталог в путь, занимаемый директорией, которая не является пустым.
Перемещение каталога поверх существующих пустой каталог пытается удалить и заменить этот каталог.
Параметры:
родитель: родительский каталог для перемещения каталога. (DirectoryEntry)
newName: новое имя каталога. По умолчанию используется имя текущей, если значение не указано. (DOMString)
successCallback: обратного вызова, который выполняется с
DirectoryEntry
объект для нового каталога. (Функция)errorCallback: обратного вызова, который выполняется, если возникает ошибка при попытке переместить каталог. Вызываемый с
[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
function success(entry) {
console.log("New Path: " + entry.fullPath);
}
function fail(error) {
alert(error.code);
}
function moveDir(entry) {
var parent = document.getElementById('parent').value,
parentName = parent.substring(parent.lastIndexOf('/')+1),
newName = document.getElementById('newName').value,
parentEntry = new DirectoryEntry(parentName, parent);
// move the directory to a new directory and rename it
entry.moveTo(parentEntry, newName, success, fail);
}
copyTo
Копирования каталога в другое место в файловой системе. Если приложение пытается приводит к ошибке:
Скопируйте каталог внутри себя на любой глубине.
Скопируйте каталог в его родительского, если не указано имя, отличное от текущего каталога.
Каталог копии всегда являются рекурсивными и скопируйте все содержимое каталога.
Параметры:
родитель: родительский каталог, в который необходимо скопировать в каталог. (DirectoryEntry)
newName: новое имя каталога. По умолчанию используется имя текущей, если значение не указано. (DOMString)
successCallback: обратного вызова, который выполняется с
DirectoryEntry
объект для нового каталога. (Функция)errorCallback: обратного вызова, который выполняется, если возникает ошибка при попытке копирования базового каталога. Вызываемый с
[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
function win(entry) {
console.log("New Path: " + entry.fullPath);
}
function fail(error) {
alert(error.code);
}
function copyDir(entry) {
var parent = document.getElementById('parent').value,
parentName = parent.substring(parent.lastIndexOf('/')+1),
newName = document.getElementById('newName').value,
parentEntry = new DirectoryEntry(parentName, parent);
// copy the directory to a new directory and rename it
entry.copyTo(parentEntry, newName, success, fail);
}
toURL
Возвращает URL-адрес, который может использоваться для поиска в каталоге.
Быстрый пример
// Get the URL for this directory
var dirURL = entry.toURL();
console.log(dirURL);
удалить
Удаляет каталог. Если приложение пытается приводит к ошибке:
Удалите каталог, который не является пустым.
Удалите корневой папке файловой системы.
Параметры:
successCallback: обратного вызова, который выполняется после удаления каталога. Вызывается без параметров. (Функция)
errorCallback: обратного вызова, который выполняется, если возникает ошибка при попытке удалить каталог. Вызываемый с
[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
Функция success(entry) {console.log («удаление успешно");}
Функция fail(error) {alert (' ошибка при удалении каталога: ' + error.code);}
/ / удалить этот каталог entry.remove (успех, неудача);
getParent
Посмотрите вверх родительского DirectoryEntry
содержащий каталог.
Параметры:
successCallback: обратный вызов, который передается родительского каталога
DirectoryEntry
. (Функция)errorCallback: обратного вызова, который выполняется, если возникает ошибка при попытке получить родительского
DirectoryEntry
. Вызываемый с[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
function success(parent) {
console.log("Parent Name: " + parent.name);
}
function fail(error) {
alert('Failed to get parent directory: ' + error.code);
}
// Get the parent DirectoryEntry
entry.getParent(success, fail);
createReader
Создает новый DirectoryReader для чтения записей в каталоге.
Быстрый пример
// create a directory reader
var directoryReader = entry.createReader();
getDirectory
Создает или ищет существующий каталог. Если приложение пытается приводит к ошибке:
- Создайте каталог, чьи непосредственный родительский еще не существует.
Параметры:
путь: путь к каталогу посмотрел вверх или создан. Либо абсолютный путь, или относительный путь от этого
DirectoryEntry
. (DOMString)опции: параметры, чтобы указать, является ли каталог будет создан, если он не существует. (Флаги)
successCallback: обратного вызова, который выполняется с
DirectoryEntry
объект. (Функция)errorCallback: обратного вызова, который выполняется, если возникает ошибка при создании или поиска каталога. Вызываемый с
[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
Функция success(dirEntry) {console.log («имя каталога:» + dirEntry.name);}
Функция fail(error) {alert ("не удается создать новый каталог: «+ error.code);}
/ / Получить существующий каталог, или создайте его, если он еще не существует entry.getDirectory («newDir» {создать: true, эксклюзивные: false}, успех, неудача);
getFile
Создает или ищет файл. Если приложение пытается приводит к ошибке:
- Создайте файл которого непосредственный родительский еще не существует.
Параметры:
путь: путь к файлу посмотрел вверх или создан. Либо абсолютный путь, или относительный путь от этого
DirectoryEntry
. (DOMString)опции: параметры, чтобы указать, создается ли файл, если он не существует. (Флаги)
successCallback: обратного вызова, передаваемого
[FileEntry](../fileentry/fileentry.html)
объект. (Функция)errorCallback: обратного вызова, который выполняется, если возникает ошибка при создании или поиска файла. Вызываемый с
[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
Функция success(fileEntry) {console.log ("имя файла:» + fileEntry.name);}
Функция fail(error) {alert ("удалось получить файл:» + error.code);}
/ / Получить существующий файл, или создайте его, если он не существует entry.getFile («newFile.txt», {создать: Правда, эксклюзивные: false}, успех, неудача);
removeRecursively
Удаляет каталог и все его содержимое. В случае ошибки (например, попытке удалить каталог, содержащий файл, который не может быть удален) некоторые из содержимого каталога могут быть удалены. Если приложение пытается приводит к ошибке:
- Удалите корневой папке файловой системы.
Параметры:
successCallback: обратного вызова, который выполняется после
DirectoryEntry
был удален. Вызывается без параметров. (Функция)errorCallback: обратного вызова, который выполняется, если возникает ошибка при попытке удалить
DirectoryEntry
. Вызываемый с[FileError](../fileerror/fileerror.html)
объект. (Функция)
Быстрый пример
function success(parent) {
console.log("Remove Recursively Succeeded");
}
function fail(error) {
alert("Failed to remove directory or it's contents: " + error.code);
}
// remove the directory and all it's contents
entry.removeRecursively(success, fail);
Причуды ежевики
Может завершиться с ControlledAccessException
в следующих случаях:
- Приложение пытается получить доступ к каталогу, созданный предыдущей установки приложения.
Решение: Убедитесь, что временные папки убираются вручную, или приложением до переустановки.
- Если устройство подключено к USB.
Решение: отключите USB-кабель от устройства и запустите снова.