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;
// Записать двоичный объект в файл
Поделиться:
Популярные книги
Воплощение Похоти
1. Воплощение Похоти
Фантастика:
юмористическое фэнтези
попаданцы
рпг
аниме
5.00
рейтинг книги
Двойник Короля 5
5. Двойник Короля
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 12
12. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том I
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Древесный маг Орловского княжества 9
9. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга ХVI
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 30
30. История Телепата
Фантастика:
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Князь Целитель 5
5. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Беглец
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Кодекс Охотника. Книга ХХХ
30. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 1. Тысячи лет кача
1. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Убивать чтобы жить 5
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Я все еще царь. Книга XXXI
31. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 11
11. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
5.00