Javascript Firefox插件。如何确定数组的元素是文件还是目录?
我正在尝试获取Firefox加载项中的文件和目录列表Javascript Firefox插件。如何确定数组的元素是文件还是目录?,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在尝试获取Firefox加载项中的文件和目录列表 var io_file = require("sdk/io/file"); var HomePath = require('sdk/system').pathFor("Home"); var list_files = io_file.list(HomePath); 如何确定数组元素是文件还是目录?Doconsole.log('debug:',list_files)然后按Ctrl+Shift+J,然后单击list_files旁边的链接,然后
var io_file = require("sdk/io/file");
var HomePath = require('sdk/system').pathFor("Home");
var list_files = io_file.list(HomePath);
如何确定数组元素是文件还是目录?Doconsole.log('debug:',list_files)
然后按Ctrl+Shift+J,然后单击list_files旁边的链接,然后它在varaible viewer中打开,您可以在那里浏览它
像这样,请注意“浏览器控制台”框并查看下面的“属性”部分,当我单击上面日志中的“[object MouseeEvent]”时,会出现该选项。
只有一组值现在打开数组中的每一项,查找是否指示dir的内容。因此,就像打开一个已知目录的项目和一个已知非目录的项目一样,然后比较属性。结果数组中没有属性。你能把你的插件上传到github吗?我来看看,请把你的插件放到列表的console.log上,这样我就可以在浏览器控制台中为你安装并查看变量查看器,然后再报告。你能上传xpi吗(我试图在repos中找到一个插件sdk插件,这样我就可以为您的代码切换出main.js,但失败了:(
const fileIO = require("sdk/io/file");
let path = "/Users/Work/";
let list = fileIO.list(path);
for (i = 0; i < list.length; i++) {
let item = fileIO.join(path, list[i]);
if (fileIO.isFile(item)) {
console.log(item + " is a file");
}
else {
console.log(item + " is a directory");
}
}
const {Cu} = require("chrome");
const {TextEncoder, OS} = Cu.import("resource://gre/modules/osfile.jsm", {});
var iterator = new OS.File.DirectoryIterator('/home/user');
var promise = iterator.forEach(
function onEntry(entry) {
if (entry.isDir) { // is Directory
console.log(JSON.stringify(entry));
} else { // is File
console.log(JSON.stringify(entry));
}
}
);
promise.then(
function onSuccess() {
iterator.close();
return subdirs;
},
function onFailure(reason) {
iterator.close();
throw reason;
}
);