Чтение онлайн

на главную - закладки

Жанры

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, но использует синхронный прикладной интерфейс, и потому получился намного короче.

Поделиться:
Популярные книги

Вперед в прошлое 7

Ратманов Денис
7. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 7

Вперед в прошлое 3

Ратманов Денис
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 3

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Сын счастья

Вассму Хербьёрг
2. Книга Дины
Проза:
современная проза
5.00
рейтинг книги
Сын счастья

Эволюционер из трущоб. Том 2

Панарин Антон
2. Эволюционер из трущоб
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 2

Проданная Истинная. Месть по-драконьи

Белова Екатерина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Проданная Истинная. Месть по-драконьи

Неучтенный элемент. Том 3

NikL
3. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 3

Кодекс Крови. Книга VIII

Борзых М.
8. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VIII

Газлайтер. Том 38

Володин Григорий Григорьевич
38. История Телепата
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 38

Искатель 1

Шиленко Сергей
1. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Искатель 1

Лекарь Империи

Карелин Сергей Витальевич
1. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи

Несгибаемый граф. Тетралогия

Яманов Александр
Нет пророка в своем отечестве
Фантастика:
альтернативная история
фэнтези
5.00
рейтинг книги
Несгибаемый граф. Тетралогия

Некромант на страже человечества. Том 5

Клеванский Никита
5. Некромант на страже человечества
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Некромант на страже человечества. Том 5

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV