- 创建目录(不能创建多级目录)
fs.mkdir(path[,mode],callback) //mode参数表示文件夹的权限,这个只是linux和mac系统下才需要设置。在window下就是777,可读可写可删除,一般设置了也没用
fs.mkdirSync(path,[,mode]) //undefined - 删除目录(删除空文件夹)
fs.rmdir(path,callback)
fs.rmdirSync(path) - 读取目录
fs.readdir(path,[,options],callback)
fs.readdir(path,[,options]) - 删除多级目录
const fs = require("fs"); const removeDir = (dir)=>{ let files = fs.readdirSync(dir);//一个数组 files.forEach((item) => { let file = dir +"/" + item; if(fs.statSync(file).isFile()){ fs.unlinkSync(file); }else{ removeDir(file); } }); fs.rmdirSync(dir); }; removeDir("./project");
- 自动创建目录结构
-
const fs = require("fs"); const config = { name: "blog", data:[ { name: "css", type: "dir" }, { name: "js", type: "dir" }, { name: "images", type: "dir" }, { name: "index.html", type: "file", content : '<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> </html>' } ] }; //根据配置,自动生成项目目录 if(config.name){ //第一步创建根目录 fs.mkdir(config.name,(err) => { config.data.forEach((item) => { //拼接路径 let file = config.name + "/" +item.name; switch(item.type){ case "dir": fs.mkdirSync(file); break; case "file": fs.writeFileSync(file,item.content,"utf-8"); break; default: break; } }); }); }
- 自动合并代码
const fs = require('fs'); const dir = "./blog/js/src"; const subject = './blog/js/dest/app.js'; //监听dir这个目录 fs.watch(dir,(evt, filename) =>{ let data = "" ; //保存读取的内容 //遍历dir目录 fs.readdir(dir, (err,files) => { if (err) throw err; //得到的files是一个数组,遍历这个数组 files.forEach( (item) => { //需要拼接,得到文件的完整的路径 let file = dir + "/" + item; //读取文件 data += fs.readFileSync(file,'utf8'); }); //遍历完毕,就可以将data写入目标文件 fs.writeFileSync(subject,data,'utf8'); }); });