JavaScript. Подробное руководство, 6-е издание
Шрифт:
reader.onerror = logerr; // Сообщить об ошибке в readAsText
},
logerr);
// Сообщить об ошибке в file
},
logerr); // Сообщить об ошибке в getFile
}
// Добавляет указанное содержимое в конец файла с указанным
именем, создает новый файл,
// если файл с указанным именем не существует. Вызывает callback по завершении операции,
function appendToFile(path, contents, callback) {
// filesystem.root - это корневой каталог,
filesystem.root.getFile( // Получить объект FileEntry
path, // Имя и путь к требуемому файлу
{create:true}, // Создать, если не существует
function(entry) { // Вызвать эту функцию, когда файл будет найден
entry.createWriter( // Создать для файла объект FileWriter
function(writeг) { // Вызвать эту функцию после создания
// По умолчанию запись производится в начало файла.
// Нам же требуется выполнить запись в конец файла
writer.seek(writer.length); // Переместиться в конец файла
// Преобразовать содержимое файла в объект Blob. Аргумент contents
// может быть строкой, объектом Blob или объектом ArrayBuffer.
var bb = new BlobBuilder;
bb.append(contents);
var blob = bb.getBlob;
// Записать двоичный объект в файл
writer.write(blob);
writer.onerror = logerr; // Сообщить об ошибке в write
if (callback) // Если указана функция callback
writer.onwrite = callback: // вызвать в случае успеха
},
logerr); // Сообщить об ошибке в createWriter
},
logerr); // Сообщить об ошибке в getFile
}
// Удаляет файл с указанным именем, вызывает callback по завершении операции,
function deleteFile(name, callback) {
filesystem.root.getFile(name, {}, //
Получить FileEntry по имени файла
function(entry) { // Передать FileEntry сюда
entry.remove(callback, // Удалить файл
logerr); // Или сообщить
}, //об ошибке в remove
logerr): // Сообщить об ошибке в getFile
}
// Создает новый каталог с указанным именем
function makeDirectory(name, callback) {
filesystem.root.getDirectory(name, // Имя создаваемого каталога
{ // Параметры
create: true, // Создать, если не сущ.
exclusive:true // Ошибка, если существует
},
callback, // Вызвать по завершении
logerr);
// Выводить любые ошибки
}
// Читает содержимое указанного каталога и передает его в виде массива строк
// указанной функции callback
function listFiles(path, callback) {
// Если каталог не указан, получить содержимое корневого каталога.
// Иначе отыскать каталог с указанным именем и вернуть список
// с его содержимым (или сообщить об ошибке поиска),
if (!path) getFiles(filesystem.root);
else filesystem.root.getDirectory(path, {}, getFiles, logerr);
function getFiles(dir) { // Эта функция используется выше
var reader = dir.createReader; // Объект DirectoryReader
var list = []; // Для сохранения имен файлов
reader.readEntries(handleEntries, // Передать функции ниже
logerr); // или сообщить об ошибке.
// Чтение каталогов может превратиться в многоэтапный процесс.
// Необходимо сохранять результаты вызовов readEntries, пока не будет
// получен пустой массив. На этом операция будет закончена,
Поделиться с друзьями: