如何检查XPCOM组件中的目录分隔符

时间:2011-04-28 05:44:30

标签: javascript firefox xul xpcom

我试图从谷歌找到答案,但我失败了。
我熟悉python,我们可以通过“os.path.sep”检查特定于平台的目录分隔符。

XPCOM组件中是否有一种方法或某些常量可以指示路径分隔符?
或者有没有办法规范化特定于平台的路径?

例如,用户在窗口下输入文件路径:C:/path1/path2/test.txt
如果我不使路径平台有效,则使用nsILocalFile :: initWithPath将抛出异常。有效路径应为“C:\ path1 \ path2 \ test.txt”。所以我想知道有办法使路径有效并且可以初始化nsILocalFile。

2 个答案:

答案 0 :(得分:2)

/**
 * 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);
}

答案 1 :(得分:0)

您可以将nsIIOService.newURI与file:// URI一起使用,然后返回一个nsIFileURL对象,从中可以获取nsIFile对象。您可以从nsIFile对象获取路径信息。