JavaScript. Подробное руководство, 6-е издание
Шрифт:
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, пока не будет
// получен пустой массив. На этом операция будет закончена,
// и полный список можно будет передать функции callback,
function handleEntries(entries) {
if (entries.length == 0) callback(list); // Операция закончена
else {
// Иначе добавить эти записи в общий список и запросить
// очередную порцию. Объект, подобный массиву, содержит
// объекты FileEntry, и нам следует получить имя для каждого.
for(var і = 0; і < entries.length; i++) {
var name = entries[i].name; // Получить имя записи
if (entries[i].isDirectory) name += "/"; // Пометить каталоги
list.push(name); // Добавить в список
}
// Получить следующую порцию записей
reader.readEntries(handleEntries, logerr);
}
}
}
}
Работать с файлами и с файловой системой намного проще в фоновых потоках выполнения, где допускается выполнять блокирующие вызовы и можно использовать синхронный прикладной интерфейс. Пример 22.14 определяет те же функции для работы с файловой системой, что и пример 22.13, но использует синхронный прикладной интерфейс, и потому получился намного короче.
Поделиться:
Популярные книги
Я не бог. Книга XXXIV
34. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Играть... в тебя
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.40
рейтинг книги
Астровитянка
1. Астровитянка
Фантастика:
научная фантастика
9.17
рейтинг книги
Ричард Львиное Сердце: Поющий король
Проза:
историческая проза
5.00
рейтинг книги
Петр и Алексей (Христос и Антихрист - 3)
Проза:
русская классическая проза
5.00
рейтинг книги
Большой шеф Красной капеллы: Впервые в мире беседы с Леопольдом Треппером
Герои тайной войны
Приключения:
исторические приключения
5.00
рейтинг книги
Офицер
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Я все еще не царь. Книга XXVI
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Мисс совершенство
3. Инн-Бунсборо
Любовные романы:
современные любовные романы
9.33
рейтинг книги
Джей
Фантастика:
фэнтези
5.00
рейтинг книги
3ds Max 2008
Видеосамоучитель
Компьютеры и Интернет:
программное обеспечение
5.00
рейтинг книги
Князь Андер Арес 3
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.40
рейтинг книги
Гуманитарное знание и вызовы времени
Humanitas
Научно-образовательная:
культурология
5.00
рейтинг книги
Рекламная деятельность газет и журналов
Деловая литература:
маркетинг, pr, реклама
5.00