目录操作
目录操作三件套:fs.mkdir 建目录(recursive: true 可连建多层)、fs.readdir 列出目录内容、fs.stat 判断是文件还是目录。删除目录用 fs.rmdir,删整个目录树推荐 fs.rm(dir, {recursive: true})(Node 14+)。
典型场景是“遍历目录下所有特定的文件”:readdir 拿到文件名数组,逐一 stat 判断类型,配合 path.join 拼出完整路径,递归处理子目录。
- mkdir(路径, {recursive: true}):目录已存在不报错(酌情判断)
- readdir 拿到的只是文件名,要 path.join 才是完整路径
- stat().isFile() / isDirectory() 区分类型;rm({recursive:true}) 删目录树
const fs = require('fs'); const fsp = require('fs').promises; const path = require('path'); async function ensureDir(dir) { await fsp.mkdir(dir, { recursive: true }); // 多层连建,已存在也不报错 console.log('目录就绪:', dir); } // 递归找出目录下所有 .md 文件 async function walk(dir) { const out = []; for (const name of await fsp.readdir(dir)) { const full = path.join(dir, name); const st = await fsp.stat(full); if (st.isDirectory()) out.push(...await walk(full)); else if (name.endsWith('.md')) out.push(full); } return out; } (async () => { await ensureDir('./tmp/docs/guide'); // 连建两层目录 console.log(await walk('./tmp')); // 打印找到的 md 文件 })();




