nodejs的目錄操作


  • 創建目錄(不能創建多級目錄)
    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');
        });
    });

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM