>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Открыть папку http://forum.mozilla-russia.org/viewtopic.php?id=57326 |
bucke > 07-12-2012 16:28:29 |
Выделить код Код:var file = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); file.initWithPath('C:\\'); var children = file.directoryEntries; var child; var list = []; while (children.hasMoreElements()) { child = children.getNext().QueryInterface(Components.interfaces.nsILocalFile); list.push(child.leafName + (child.isDirectory() ? ' [DIR]' : '')); } alert(list.join('\n')); Пишет ошибку NS_ERROR_FILE_IS_LOCKED: Component returned failure code: 0x8052000e (NS_ERROR_FILE_IS_LOCKED) [nsILocalFile.isDirectory] на остальных диска нормально читает. Можно ли как-то прочитать на диске C:\\ файлы? |
Infocatcher > 07-12-2012 16:39:57 |
bucke пишет
Выделить код Код:try { list.push(child.leafName + (child.isDirectory() ? ' [DIR]' : '')); } catch(e) { list.push(child.leafName + ' ' + e); } |
bucke > 07-12-2012 16:52:15 |
Спасибо, работает. Еще такой вопрос. Пытаюсь открыть такой каталог Выделить код Код:function test(){ var file = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); file.initWithPath('chrome://hello/content/lib'); var children = file.directoryEntries; var child; var list = []; while (children.hasMoreElements()) { child = children.getNext().QueryInterface(Components.interfaces.nsILocalFile); try { list.push(child.leafName + (child.isDirectory() ? ' [DIR]' : '')); } catch(e) { list.push(child.leafName + ' ' + e); } } alert(list.join('\n')); } NS_ERROR_FILE_UNRECOGNIZED_PATH: Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath] |
Infocatcher > 07-12-2012 21:34:52 |
bucke пишет
А зачем это делать? И вообще,
07-12-2012 21:52:22 Выделить код Код:Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManager.getAddonByID("inspector@mozilla.org", function(addon) { var path = addon.getResourceURI().spec .replace(/^file:\/+/, "") .replace(/\//g, "\\"); // Тут надо проверить платформу, замена нужна только для Windows var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path + "chrome"); ... }); (для DOM Inspector'а) |
bucke > 08-12-2012 00:49:57 |
Я для себя пишу, я не настолько про что-бы для других писать))) и я не упаковывал в XPI. Я просто хочу сделать папку в которой js файлы будут автоматически подключатся при загрузке Firefox, может подскажете как это лучше всего сделать? |
bucke > 08-12-2012 01:25:45 |
Спасибо за ответ и ссылки, будем пробовать) |