Жесткий диск

Жесткий диск.

Место, резервируемое для приложения, — это «песочница», небольшой блок на жестком диске с собственными корневым каталогом и конфигурацией. Для того чтобы начать работать с ним, в первую очередь необходимо инициализировать файловую систему для нашего приложения: requestFileSystem(type, size, функция для успешного завершения, функция для завершения с ошибкой). Этот метод создает файловую систему такого размера и такого типа, как указано в его атрибутах. Атрибут type может принимать значение либо TEMPORARY, либо PERSISTENT в зависимости от того, как долго должны сохраняться данные: временно или на неограниченный срок соответственно. Атрибут size определяет размер пространства, которое резервируется на жестком диске для данной файловой системы, и задается в байтах. В случае успешного выполнения операции и в случае ошибки метод вызывает соответствующую функцию обратного вызова.

Метод requestFileSystem() возвращает объект файловой системы (File System) с двумя свойствами:

- root. Значение этого свойства представляет собой ссылку на корневой каталог файловой системы. По сути, это объект DirectoryEntry, с которым также связаны определенные методы (с ними мы познакомимся чуть позже). Через это свойство можно ссылаться на пространство хранилища и работать посредством него с файлами и каталогами;

- name. Возвращает информацию о файловой системе, такую как имя, назначенное ей браузером, и состояние.

Листинг 12.8. Настройка файловой системы

Function initiate(){

Databox=document. getElementById(‘databox’); var button=document. getElementById(‘fbutton’); button. addEventListener(‘click’, create, false);

Window. webkitRequestFileSystem(window. PERSISTENT, 5*1024*1024, createhd, showerror);

}

Function createhd(fs) { hd=fs. root;

}

Var name=document. getElementById(‘myentry’).value; if(name!=»){

Hd. getFile(name, {create: true, exclusive: false}, show, showerror);

}

}

Function show(entry){

Document. getElementById(‘myentry’).value=»;

Databox. innerHTML=’Запись создана!^^’; databox. innerHTML+=’Имя: ‘+entry. name+’<br>’; databox. innerHTML+=’Путь: ‘+entry. fullPath+’<br>’; databox. innerHTML+=’Файловая система: ‘+entry. filesystem. name;

}

Function showerror(e){ alert(‘Ошибка: ‘+e. code);

}

Window. addEventListener(‘load’, initiate, false);

Сейчас единственный вариант реализации этой части API можно найти в браузере Google Chrome. Поскольку реализация экспериментальная, нам понадобилось заменить метод requestFileSystem() специальным методом для Chrome, в названии которого присутствует браузерный префикс, — webkitRequestFileSystem(). Используя данный метод, вы можете тестировать этот и последующие примеры кода в своем браузере.

Объединяя HTML-документ из листинга 12.7 с кодом из листинга 12.8, мы получаем наше первое приложение для работы с новыми файлами на пользовательском компьютере. Сначала код вызывает метод requestFileSystem() для создания или получения ссылки на файловую систему; если приложение выполняется впервые, создается новая файловая система. В нашем случае это постоянная файловая система объемом 5 Мбайт (5 х 1024 х 1024). Если данная операция выполняется успешно, то вызывается функция createhd(), в которой процесс инициализации продолжается. В случае ошибок мы используем простую функцию showerror(), которую применяли и раньше для других API.

При создании или открытии файловой системы функция createhd() получает объект FileSystem и сохраняет ссылку на него — то есть значение его свойства root — в переменной hd.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *