JavaScript. Подробное руководство, 6-е издание
Шрифт:
/*
* Следующие функции были протестированы в Google Chrome 10.0 dev.
* Вам может потребоваться запустить Chrome со следующими ключами:
* --unlimited-quota-for-files : разрешает доступ к файловой системе
* —allow-file-access-from-files : разрешает тестировать из URL file://
*/
// Многие асинхронные функции, используемые здесь, принимают необязательные функции
// обратного вызова для обработки ошибок.
// Следующая функция просто выводит сообщение об ошибке,
function logerr(e) { console.log(e); }
// requestFileSystem возвращает локальную файловую систему, доступную
// только приложениям с указанным происхождением. Приложение может читать
// и писать файлы в ней, но не может получить доступ к остальной файловой системе,
var filesystem; // Предполагается, что эта переменная будет инициализирована
// перед вызовом функции, объявленной ниже.
requestFileSystem(PERSISTENT, // Или TEMPORARY для кэширования файлов 10*1024*1024,
// Требуется 10 Мбайт
function(fs) { // После выполнения вызвать эту функцию
filesystem = fs; // Просто сохранить ссылку на файловую систему
},
//в глобальной переменной,
logerr); // Вызвать эту функцию в случае ошибки
// Читает содержимое указанного файла как текст и передает его функции обратного вызова,
function readTextFile(path, callback) {
// Вызвать getFile, чтобы получить объект FileEntry для файла
// с указанным именем
filesystem.root.getFile(path, {}, function(entry) {
// При вызове этой функции передается объект FileEntry, соответствующий файлу.
// Теперь следует вызвать метод FileEntry.file, чтобы получить объект File
entry.file(function(file) { // Вызвать с объектом File
var reader = new FileReader; // Создать объект FileReader
reader.readAsText(file); // И прочитать файл
reader.onload = function { // В случае успешного чтения
callback(reader.result); // Передать данные функции callback
}
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;
// Записать двоичный объект в файл
Поделиться:
Популярные книги
Варвара Асенкова
Корифеи русской и зарубежной сцены
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Государь
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Газлайтер. Том 22
22. История Телепата
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Меняя маски
1. Унесенный ветром
Фантастика:
боевая фантастика
попаданцы
9.22
рейтинг книги
Вечная Война. Книга II
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Моров. Том 4
3. Моров
Фантастика:
фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Я снова граф. Книга XI
11. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Жена по ошибке
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Неучтенный элемент. Том 3
3. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Страх
2. Дети Арбата
Проза:
историческая проза
9.49
рейтинг книги
Инженер Петра Великого 2
2. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Черта прикрытия
9. Культура
Фантастика:
боевая фантастика
космическая фантастика
киберпанк
6.67
рейтинг книги
Газлайтер. Том 18
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Афганский рубеж 2
2. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00