- 創建目錄(不能創建多級目錄)
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>\n<html lang="en">\n<head>\n<meta charset="UTF-8">\n<title>Title</title>\n</head>\n <body>\n</body>\n</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'); }); });