文件操作api
- 删除操作:删除文件
fs.unlinkSync
,删除目录fs.rmdirSync
- 提供有关文件的信息:
fs.statSync
返回的对象里有 isFile(是否是文件)、isDirectory(是否是文件系统目录) - 读取目录的内容:
fs.readdirSync
先看一个例子删除目录里的文件跟文件夹,下面就是删除目录 k
下的文件跟文件夹
const fs = require("fs"); const path = require("path"); let dirs = fs.readdirSync("k"); dirs = dirs.map((item) => path.join("k", item)); console.log("dirs---->", dirs); dirs.forEach((item) => { // 获取文件的状态信息 let statObj = fs.statSync(item); console.log("statObj---->", item, statObj.isFile()); if (statObj.isFile()) { fs.unlinkSync(item); } else { fs.rmdirSync(item); } }); fs.rmdirSync("k");
下面实现多层级的同步删除,测试目录为 a
const fs = require("fs"); const path = require("path"); function rmdirSync(dir) { // 首先需要判断 dir 是否是文件夹 let statObj = fs.statSync(dir); if (statObj.isDirectory()) { let dirs = fs.readdirSync(dir); console.log("dir---->", dir); dirs.forEach((d) => { rmdirSync(path.join(dir, d)); }); fs.rmdirSync(dir); } else { fs.unlinkSync(dir); } } rmdirSync("a");