将文件系统中的目录结构转换为Json对象

时间:2017-03-04 09:43:33

标签: json node.js filesystems

我知道如何从here

将目录结构转换为JSON对象

但我想要一个数组中的所有文件,以及对象中的文件夹和对象键作为文件夹名称。我已经尝试了很长时间但却无法完成它。

到目前为止,我已经尝试过了:

var diretoryTreeToObj = function (dir, done) {
  var results = {};
  var _contents = [];
  fs.readdir(dir, function (err, list) {
    if (err) {
      return done(err);
    }
    var pending = list.length;
    if (!pending) {
      return done(null, {name: path.basename(dir), type: 'folder', children: results});
    }
    list.forEach(function (file, index) {
      file = path.resolve(dir, file);
      fs.stat(file, function (err, stat) {
        if (stat && stat.isDirectory()) {
          diretoryTreeToObj(file, function (err, res) {
            results[path.basename(file)] = {
              name: path.basename(file),
              type: 'folder',
              path: path.dirname(file),
              _contents: [res]
            };
            if (!--pending) {
              done(null, results);
            }
          });
        } else {
          results['_contents'] = [{
            name: path.basename(file),
            path: file
          }];
          if (!--pending) {
            done(null, results);
          }
        }
      });
    });
  });
};

提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

最后我想出了解决方案,如果有人需要的话,这就是:

select  distinct DEPARTMENT_NAME, CITY, COUNTRY_NAME
from    OEHR_DEPARTMENTS t1
join    OEHR_EMPLOYEES t2
on      t1.department_id = t2.department_id --guessing column names
join    OEHR_EMPLOYEES t3
  on    t1.department_id = t3.department_id --guessing column names
join    OEHR_LOCATIONS t4
  on    t1.location_id = t4.location_id --guessing column names
join    OEHR_COUNTRIES t5
  on    t4.country_id = t5.country_id --guessing column names
where   t2.job_id = 'SA_MAN' and t3.job_id = 'SA_REP'
order by 1, 2, 3