Node.js同步目录遍历示例

node.js 的目录遍历写法还蛮常用的,尤其是做工具脚本或者批量文件的时候,能省不少事儿。这篇示例走的是同步遍历路线,代码简单直接,不绕弯子,适合入门也适合留着做模板。用到了fs.readdirSyncfs.statSync,配合path.join拼路径,递归一层层往下翻,响应也快。

核心逻辑就是一个travel函数,传个目录进来,它会一层层遍历,碰到文件就执行回调,碰到文件夹就继续往下递归,典型的深度优先遍历写法。

const fs = require('fs');
const path = require('path');

function travel(dir, callback) { fs.readdirSync(dir).forEach((file) => { var pathname = path.join(dir, file); if (fs.statSync(pathname).isDirectory()) { travel(pathname, callback); } else { callback(pathname); } }); }

哦对,如果你目录大或者文件多,建议换成异步写法,不然容易卡住主线程。想轻松一点管理目录结构,也可以看看Dirio这种模块,能直接把结构转成 JSON,省不少麻烦。

顺手贴几个相关的扩展内容,配合着看会更全面:

如果你也经常文件夹,不妨把这段代码收着,说不定哪天就用上了。

pdf 文件大小:17.84KB