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