Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 目录树node.js的数组_Javascript_Node.js_Directory - Fatal编程技术网

Javascript 目录树node.js的数组

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

我正在尝试使用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');
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文件):