我正在尝试获取Firefox附加组件中的文件和目录列表。
var io_file = require("sdk/io/file");
var HomePath = require('sdk/system').pathFor("Home");
var list_files = io_file.list(HomePath);
如何确定数组的元素是文件还是目录?
答案 0 :(得分:1)
执行console.log('debug:', list_files)
,然后按Ctrl + Shift + J,然后单击list_files旁边的链接,然后在可变查看器中打开,您可以在那里进行探索。
像这样,请注意“浏览器控制台”框并看到下面的“属性”部分,当我点击您在上面的日志中看到的“[对象MouseEvent]”时出现。
答案 1 :(得分:1)
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;
}
);