创建独立于平台的路径字符串

时间:2013-09-29 19:55:25

标签: javascript firefox filesystems firefox-addon firefox-addon-sdk

我正在使用Mozilla插件sdk进行开发,需要在本地系统上创建一个文件。
目前我使用下面的声明,但感觉它可能不涵盖所有平台 在Windows 7和Windows XP上运行该语句将返回:

console.log(system.platform);
winnt

在Linux上运行它返回:

console.log(system.platform);
linux

是否有更可靠的方法来创建fullPath字符串,而无需检查system.platform的内容?

pathToFile = Cc["@mozilla.org/file/directory_service;1"]
    .getService(Ci.nsIProperties).get("Home", Ci.nsIFile).path;

if (system.platform.indexOf("win") == 0) {
    fileSeparator = "\";

}else{
    fileSeparator = "/";
}

fullPath=pathToFile + fileSeparator + 'myFile.txt'

3 个答案:

答案 0 :(得分:1)

只需对代码进行一些修改就可以了解

var file = Cc["@mozilla.org/file/directory_service;1"]
                .getService(Ci.nsIProperties).get("Home", Ci.nsIFile);

file.append("myFile.txt");

var fullPath = file.path;

答案 1 :(得分:0)

我想指出@ Kashif回答的替代方案。

使用FileUtils.getFile(),它只是一个便利函数,基本上可以执行多个.append(),每个项目在零件数组中一个。

Cu.import("resource://gre/modules/FileUtils.jsm");
var file = FileUtils.getFile("Home", ["myFile.txt"]);
var path = file.path;

答案 2 :(得分:0)

SDK有一个与'fs/path'

平分的Node's path API模块