Javascript 目录树node.js的数组
我正在尝试使用NodeJS将目录树生成到数组中。产出将是:Javascript 目录树node.js的数组,javascript,node.js,directory,Javascript,Node.js,Directory,我正在尝试使用NodeJS将目录树生成到数组中。产出将是: [ __Dirname [array of sub directories] ] ["FolderA"[ ["SubFolderA",[]] ]], ["FolderB",[]] 函数readDir(dir){ fs.readdir(dir,函数(err,文件){ 对于(var i=0;i,以下代码用于生成目录树对象 var path = require('path'); var util = require('util'); va
[ __Dirname [array of sub directories] ]
["FolderA"[ ["SubFolderA",[]] ]], ["FolderB",[]]
函数readDir(dir){ fs.readdir(dir,函数(err,文件){ 对于(var i=0;i,以下代码用于生成目录树对象
var path = require('path');
var util = require('util');
var walker = require('walker');
/*
* To walk a directory and generate the tree object
*
* @param dest {string} the directory to start with.
* @param cb {function} the callback function, cb(err, dirObj)
*
*/
function readDir(dest, cb) {
var dirObj = {};
var child, parts, obj;
walker(dest)
.on('dir', function(dir, stat) {
if (dir === dest) return;
child = dir.slice(dest.length, dir.length);
if (child.indexOf(path.sep) === 0) {
child = child.slice(1, child.length);
};
parts = child.split(path.sep);
obj = dirObj;
for(var i=0;i<parts.length;i++) {
if (parts[i] !== '') {
if (obj[parts[i]] === undefined) {
obj[parts[i]] = {};
};
obj = obj[parts[i]];
}
};
})
.on('error', function(err, entry, stat) {
cb(err, null);
})
.on('end', function() {
cb(null, dirObj);
})
};
readDir(__dirname, function(err, dirObj) {
if (err) {
console.log(err);
} else {
// Handle the returned directory object
console.log(util.inspect(dirObj, {showHidden: true, depth: null}));
}
});
var path=require('path');
var util=require('util');
var walker=需要(“walker”);
/*
*遍历目录并生成树对象
*
*@param dest{string}要开始的目录。
*@param cb{function}回调函数cb(err,dirObj)
*
*/
函数readDir(dest,cb){
var dirObj={};
变量子项、零件、obj;
步行者(目的地)
.on('dir',函数(dir,stat){
如果(dir==dest)返回;
child=dir.slice(dest.length,dir.length);
if(child.indexOf(path.sep)==0){
child=child.slice(1,child.length);
};
parts=子.split(path.sep);
obj=dirObj;
对于(var i=0;i,以下代码用于生成目录树对象
var path = require('path');
var util = require('util');
var walker = require('walker');
/*
* To walk a directory and generate the tree object
*
* @param dest {string} the directory to start with.
* @param cb {function} the callback function, cb(err, dirObj)
*
*/
function readDir(dest, cb) {
var dirObj = {};
var child, parts, obj;
walker(dest)
.on('dir', function(dir, stat) {
if (dir === dest) return;
child = dir.slice(dest.length, dir.length);
if (child.indexOf(path.sep) === 0) {
child = child.slice(1, child.length);
};
parts = child.split(path.sep);
obj = dirObj;
for(var i=0;i<parts.length;i++) {
if (parts[i] !== '') {
if (obj[parts[i]] === undefined) {
obj[parts[i]] = {};
};
obj = obj[parts[i]];
}
};
})
.on('error', function(err, entry, stat) {
cb(err, null);
})
.on('end', function() {
cb(null, dirObj);
})
};
readDir(__dirname, function(err, dirObj) {
if (err) {
console.log(err);
} else {
// Handle the returned directory object
console.log(util.inspect(dirObj, {showHidden: true, depth: null}));
}
});
var path=require('path');
var util=require('util');
var walker=需要(“walker”);
/*
*遍历目录并生成树对象
*
*@param dest{string}要开始的目录。
*@param cb{function}回调函数cb(err,dirObj)
*
*/
函数readDir(dest,cb){
var dirObj={};
变量子项、零件、obj;
步行者(目的地)
.on('dir',函数(dir,stat){
如果(dir==dest)返回;
child=dir.slice(dest.length,dir.length);
if(child.indexOf(path.sep)==0){
child=child.slice(1,child.length);
};
parts=子.split(path.sep);
obj=dirObj;
对于(var i=0;i您可以尝试此模块:
有很多自定义选项,结果可能是:
甚至可以返回字符串,如下所示:
sample
└─> backend
├── firebase.json
├── hello.txt
└─> server
└── server.js
您可以使用它获取目录树的对象结构,然后将其转换为数组
此codesandbox具有解决方案(请参阅solution.js文件):
您可以尝试此模块:
有很多自定义选项,结果可能是:
甚至可以返回字符串,如下所示:
sample
└─> backend
├── firebase.json
├── hello.txt
└─> server
└── server.js
您可以使用它获取目录树的对象结构,然后将其转换为数组
此codesandbox具有解决方案(请参阅solution.js文件):