如何使用nodejs步行模块将目录遍历到第一级
How to walk directory till first-level using nodejs walk module
我有以下目录结构
Ranveers-MacBook-Air:custom-feeds ranveer$ ls /Users/ranveer/custom-feeds
README.md cartridges sites
Ranveers-MacBook-Air:custom-feeds ranveer$
我想遍历上面的目录,在输出中我只需要第一个目录(即第一级)
所需输出(目录 + 完整路径)
- /
- 用户/兰维尔/自定义进料/墨盒 /
- 用户/兰维尔/自定义提要/网站
我尝试使用以下代码生成我想要的输出
walk = require('walk');
walker = walk.walk('/Users/ranveer/custom-feeds');
walker.on('directories' , (root, dirStatsArray, next) => {
console.log(dirStatsArray);
next();
});
我在节点控制台中得到以下输出
> walker.on('directories' , (root, dirStatsArray, next) => {
... console.log(dirStatsArray);
... next();
... });
Walker {
domain:
Domain {
domain: null,
_events: { error: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] },
_events: { directories: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
_wStat: 'lstat',
_wStatSync: 'lstatSync',
_wsync: false,
_wq: [],
_wqueue: [],
_wcurpath: '/Users/ranveer/custom-feeds/.git/logs/refs/heads',
_wfilters: [],
_wfirstrun: true,
_wWalk: [Function],
_wfnodegroups:
{ files: [ [Object] ],
directories: [],
symbolicLinks: [],
blockDevices: [],
characterDevices: [],
FIFOs: [],
sockets: [],
nodes: [],
errors: [] },
_wcurfiles: [ 'master' ],
_wcurfile: 'master',
_wCurFileCallback: [Function: next] }
>
我看不到我的console.log
打印dirStatsArray
。
那么,如何遍历目录直到第一级
你不能只使用 fs 和 path 来非递归地遍历目录吗?
var fs = require('fs');
var path = require('path');
var p = './';
fs.readdir(p, function(err, files) {
files.map(function(file) {
return path.join(p, file);
}).filter(function(file) {
return fs.statSync(file).isDirectory();
}).forEach(function(file) {
console.log(file);
});
});
因此,在查看了 github 上的模块代码并查看了一些已关闭的问题之后,直到深度1 level
正确的方法是不要调用 next()
。
由于next()
强制递归调用。
https://github.com/coolaj86/node-walk/issues/28
相关文章:
- 循环遍历以数组为值的Javascript对象
- 遍历类元素数组,并在jquery中选择同级元素
- Jquery遍历表元素
- Chrome扩展:遍历不同的页面并收集数据
- 如何遍历包含对象的数组-javascript
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 遍历AngularJs中的对象
- JQuery 遍历当前 SELECT 值
- 循环遍历包含另一个表单的表单
- 使用Yadda和Protractor重用步骤定义,遍历所需文件
- 遍历D3中所有数据点之间的所有值
- 自动遍历所有链接的事件
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 如何使用 document.querySelectorAll 遍历选定的元素
- 使用Javascript反向遍历XML
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- Netsuite Suitelet:在不达到治理限制的情况下,遍历事务行项目的列表加载和提交记录
- 遍历DOM查找字符串有时会正确返回
- 如何使用SnapSVG将SVG作为树结构遍历
- 如何使用nodejs步行模块将目录遍历到第一级