跳到主要内容
CNode

【模块】深度遍历目录/列出目录下所有文件

社区
Lleizongmin发布于 13 年前最后回复 12 年前
13288230

使用方法:

var rd = require('rd');

// 异步列出目录下的所有文件
rd.read('/tmp', function (err, files) {
  if (err) throw err;
  // files是一个数组,里面是目录/tmp目录下的所有文件(包括子目录)
});

// 同步列出目录下的所有文件
var files = rd.readSync('/tmp');

// 异步遍历目录下的所有文件
rd.each('/tmp', function (f, s, next) {
  // 每找到一个文件都会调用一次此函数
  // 参数s是通过 fs.stat() 获取到的文件属性值
  console.log('file: %s', f);
  // 必须调用next()才能继续
  next();
}, function (err) {
  if (err) throw err;
  // 完成
});

// 同步遍历目录下的所有文件
rd.eachSync('/tmp', function (f, s) {
  // 每找到一个文件都会调用一次此函数
  // 参数s是通过 fs.stat() 获取到的文件属性值
  console.log('file: %s', f);
});

安装: $ npm install rd

源码: https://github.com/leizongmin/node-rd

查看回复

回复 (13)

L
leizongmin#1312 年前
引用 JacksonTian我好像写过一个类似的iwalk,还能防止open file too many问题。

这个模块也不会出现 open file too many 的,有限制并发数量

J
JacksonTian#1212 年前

我好像写过一个类似的iwalk,还能防止open file too many问题。

X
xujun52011#1112 年前

不如exec('ll -R')来得快

B
bijiabo#1012 年前
引用 sumory老雷速度很快,lincell已经用了这个.

亲 你的lincell会让浏览器卡死@@ 。。。不知道怎么回事

L
leizongmin#913 年前
引用 DoubleSpout老雷辛苦啦,关注了这个项目,以后有机会用上方便找到啊

你的rrestjs那个自动路由模块,好像不能载入子目录的文件吧?用了这个模块就很方便实现了

J
jiyinyiyong#713 年前

https://github.com/thlorenz/readdirp 这个也是,, 不过看起来很复杂的样子

D
DoubleSpout#613 年前

老雷辛苦啦,关注了这个项目,以后有机会用上方便找到啊

S
sumory#513 年前
L
leizongmin#413 年前
引用 sumory老雷速度很快,lincell已经用了这个.

为了给你的lincell用而专门写的

S
sumory#313 年前

老雷速度很快,lincell已经用了这个.

D
dengqiao#213 年前

不会意思,没看仔细,这个是使用方法不是lib

D
dengqiao#113 年前

给个建议,nodejs下面直接throw err不是好方法,还是通过回调解决吧

参与回复

登录后即可参与回复。登录