Интернет, компьютеры, софт и прочий Hi-Tech | ||
Избранные докиМетки (все метки)hi tech, internet, it, интернет, информационные технологии, ит, по, программное обеспечение, сайт, софт
Подписаться через RSS2Email.ru
Дополнительнооптимизация, сайт, мониторы, движок, Битрикс, хостинг, сайты, мобильные, электроника, видеокарта |
Ввод и вывод из файла средствами XPCOMСодержание
Создание папокДля создания папки используйте ' var file = Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties).
get("ProfD", Components.interfaces.nsIFile);
file.append("DIR");
if( !file.exists() || !file.isDirectory() ) { // если не существует, создаем
file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
}
В приведенном примере создается папка с названием "DIR", вложенная
в папку профайла. Дополнительную информацию можно найти в справке по Создание временных файловДля создания временного файла используйте
' var file = Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties).
get("TmpD", Components.interfaces.nsIFile);
file.append("suggestedName.tmp");
file.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0666);
// делаем все, что нужно с созданным файлом
alert(file.path);
Пользовательский ввод с помощью 'nsIFilePicker'Для открытия стандартных диалогов открытия/сохранения может быть использован
компонент выбора файла
'nsIFilePicker'. Он вызвращает выбранный пользователем файл в виде
' 'nsIFile' и строковые путиВы можете использовать ' Для получения URL файла используйте 'nsIIOService.newFileURI()': // файл как 'nsIFile'
var ios = Components.classes["@mozilla.org/network/io-service;1"].
getService(Components.interfaces.nsIIOService);
var URL = ios.newFileURI(file);
// URL как 'nsIURI'.
// Для получения строки вида "file://..." смотрите 'URL.spec'
Для получения ' // URL как 'nsIURI'. // Смотрите 'nsIIOService::newURI' для получения строки из 'nsIURI'. var file = URL.QueryInterface(Components.interfaces.nsIFileURL).file; // теперь файл представлен как 'nsIFile' Загружая с 'file://', 'http://', 'chrome://', 'resource://' и других прямых URL, используйте 'XMLHttpRequest' или 'nsIChannel' (пример). Заметим также, что в большинстве случаев вам ненужно использовать
' Сохранение 'nsILocalFile' в преференцияхСледующие два пункта демонстрируют правильный способ сохранения файлового пути в пользовательских преференциях (более подробно о преференциях в Mozilla): Абсолютный путь ('nsILocalFile')Для сохранения произвольного пути в пользовательских преференциях, используйте следующий код: // 'file' должен быть 'nsILocalFile'
// 1. Записываем путь в 'prefs'
var prefs = Components.classes["@mozilla.org/preferences-service;1"].
getService(Components.interfaces.nsIPrefService).
getBranch("extensions.myext.");
prefs.setComplexValue("filename", Components.interfaces.nsILocalFile, file);
// 2. Читаем путь из 'prefs'
var file = prefs.getComplexValue("filename", Components.interfaces.nsILocalFile);
Относительный путь ('nsIRelativeFilePref')Сохранение путей, относительных к какой-то определенной папке из перечисленных выше, продемонстрируем на примере путей, относительных к папке профайла. Для их сохранения используйте следующий код: // 1. Записываем в 'prefs'
var relFile = Components.classes["@mozilla.org/pref-relativefile;1"].
createInstance(Components.interfaces.nsIRelativeFilePref);
relFile.relativeToKey = "ProfD"; // или любая другая из перечисленных выше строк
relFile.file = file; // 'file' должен быть 'nsILocalFile'
prefs.setComplexValue("filename",
Components.interfaces.nsIRelativeFilePref, relFile);
// 2. Читаем из 'prefs'
var value = prefs.getComplexValue("filename",
Components.interfaces.nsIRelativeFilePref);
// 'value.file' является сохраненным 'file'.
Назад: Начало Перевод с английского: Д.Скоробогатов, 24.09.2010. Предыдущие публикации:
Последнее редактирование: 2010-10-15 10:54:31 Метки материала: com, программа, файл, mozilla, скрипты, браузер, программы для компьютера, программирование, javascript, ит, разработка программ, файловая система, xpcom, xulrunner, api, по, программное обеспечение, программы, софт, информационные технологии Оставьте, пожалуйста, свой комментарий к публикации |
|
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.