Firefox Addon。如何确定数组的元素是文件还是目录?

时间:2014-08-24 18:41:58

标签: 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);

如何确定数组的元素是文件还是目录?

2 个答案:

答案 0 :(得分:1)

执行console.log('debug:', list_files),然后按Ctrl + Shift + J,然后单击list_files旁边的链接,然后在可变查看器中打开,您可以在那里进行探索。

像这样,请注意“浏览器控制台”框并看到下面的“属性”部分,当我点击您在上面的日志中看到的“[对象MouseEvent]”时出现。 http://img.photobucket.com/albums/v135/noitidart/my20code20works_zpsdd244f45.png

答案 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;
        }
    );