Как проверить разделитель каталогов в компоненте XPCOM - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь найти ответ от Google, но мне это не удалось.
Я знаком с python, в котором мы можем проверить разделитель каталога для конкретной платформы с помощью "os.path.sep".

Существует ли какой-либо способ или некоторая константа в компоненте XPCOM, которая может указывать разделитель пути?
Или есть способ нормализовать путь, специфичный для платформы?

Например, пользователь вводит путь к файлупод окном: C: /path1/path2/test.txt
Использование nsILocalFile :: initWithPath вызовет исключение, если я не сделаю платформу пути действительной.Допустимый путь должен быть «C: \ path1 \ path2 \ test.txt».Поэтому мне интересно, есть ли способ сделать путь действительным и можно запустить nsILocalFile.

Ответы [ 2 ]

2 голосов
/ 17 августа 2011
/**
 * Returns file path separator under current OS
 */
function getPathSeparator()
{
    var profD = Components.classes["@mozilla.org/file/directory_service;1"].
                getService(Components.interfaces.nsIProperties).
                get("ProfD", Components.interfaces.nsIFile);
    profD.append("abc");
    profD.append("abc");
    var length = profD.path.length;
    return profD.path.substr(length-("abc".length)-1,1);
}
0 голосов
/ 28 апреля 2011

Вы можете использовать nsIIOService.newURI с file: // URI и получить обратно объект nsIFileURL, из которого можно получить объект nsIFile. Вы можете получить информацию о пути из объекта nsIFile.

...