0
我知道如何目录结构成JSON对象转换,从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);
}
}
});
});
});
};
感谢。 :)
让我们了解您到目前为止试过。 – georoot
更新了问题,看看 – aditya
我现在不能尝试,但我想问题是你的代码是同步的,因为它使用* fs *模块和回调。我会尝试在调用diretoryTreeToObj(file,....')的下面添加一个'console.log(file)'来查看你是否获得了多次相同的文件名,还可以指定什么不起作用?你有什么错误吗? – Molda