0

我正在使用 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'
4

3 回答 3

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;
于 2013-09-30T12:37:04.490 回答
0

SDK 有一个“fs/path”模块,它与Node 的路径 API 相同

于 2013-10-05T21:07:07.623 回答
0

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

Use FileUtils.getFile(),这只是一个便利功能,本质上是做多个.append()s,parts 数组中的每个项目一个。

Cu.import("resource://gre/modules/FileUtils.jsm");
var file = FileUtils.getFile("Home", ["myFile.txt"]);
var path = file.path;
于 2013-09-30T16:07:41.757 回答