Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№107-12-2012 16:28:29

bucke
Участник
 
Группа: Members
Зарегистрирован: 07-12-2012
Сообщений: 36
UA: Firefox 17.0

Открыть папку

Выделить код

Код:

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:\\ файлы?

Отсутствует

 

№207-12-2012 16:39:57

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 17.0

Re: Открыть папку

bucke пишет

Можно ли как-то прочитать на диске C:\\ файлы?

Выделить код

Код:

try {
            list.push(child.leafName + (child.isDirectory() ? ' [DIR]' : ''));
        }
        catch(e) {
            list.push(child.leafName + ' ' + e);
        }

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№307-12-2012 16:52:15

bucke
Участник
 
Группа: Members
Зарегистрирован: 07-12-2012
Сообщений: 36
UA: Firefox 17.0

Re: Открыть папку

Спасибо, работает. Еще такой вопрос. Пытаюсь открыть такой каталог
chrome://hello/content/lib

Выделить код

Код:

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]
Как сделать правильно?

Отсутствует

 

№407-12-2012 21:34:52

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 17.0

Re: Открыть папку

bucke пишет

Пытаюсь открыть такой каталог
chrome://hello/content/lib

А зачем это делать?
Там у большинства пользователей без https://developer.mozilla.org/en-US/doc … sts#unpack будет сначала архив, а уж потом каталоги.

И вообще,
https://developer.mozilla.org/en-US/doc … Path%28%29

filePath
    A string that specifies a platform-specific, full path to a file or directory.

Добавлено 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'а)

Отредактировано Infocatcher (07-12-2012 21:52:22)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№508-12-2012 00:49:57

bucke
Участник
 
Группа: Members
Зарегистрирован: 07-12-2012
Сообщений: 36
UA: Firefox 17.0

Re: Открыть папку

Я для себя пишу, я не настолько про что-бы для других писать))) и я не упаковывал в XPI. Я просто хочу сделать папку в которой js файлы будут автоматически подключатся при загрузке Firefox, может подскажете как это лучше всего сделать?
За ответы спасибо, не думал что здесь так быстро отвечают.:)

Отсутствует

 

№608-12-2012 01:25:45

bucke
Участник
 
Группа: Members
Зарегистрирован: 07-12-2012
Сообщений: 36
UA: Firefox 17.0

Re: Открыть папку

Спасибо за ответ и ссылки, будем пробовать)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]