我正在使用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'
答案 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模块