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;
// Записать двоичный объект в файл
Поделиться:
Популярные книги
Гримуар темного лорда VI
6. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кондотьер
7. Ушедший Род
Фантастика:
фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Наследие Маозари
1. Наследие Маозари
Фантастика:
рпг
попаданцы
аниме
5.80
рейтинг книги
Вечный. Книга VI
6. Вечный
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Страх
2. Дети Арбата
Проза:
историческая проза
9.49
рейтинг книги
Шайтан Иван
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Черный Маг Императора 14
14. Черный маг императора
Фантастика:
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Одержимый
Top Thriller
Детективы:
триллеры
маньяки
8.67
рейтинг книги
Газлайтер. Том 9
9. История Телепата
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Я до сих пор не бог. Книга XXXVII
37. Дорогой барон!
Фантастика:
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 7
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Хозяин Теней 6
6. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 10
10. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Черный Маг Императора 10
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00