• 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>
      <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');
          });
      });
    生命是一场华丽的绽放!
  • 相关阅读:
    【WPF】ListBox GridViewColumn Header 文字换行、文字多行显示
    【Unity】讯飞语音识别SDK
    【Unity】UGUI无法修改UI元素的Pivot锚点位置
    【Unity】EasyTouch5触屏检测
    【Unity】序列化字典Dictionary的问题
    【WPF】自定义形状的按钮Button
    【WPF】图片按钮的单击与双击事件
    【Unity】ShareSDK、SMSSDK的基本使用与常见问题
    【Unity】不能新建项目
    【Java】移动JDK路径后,修改环境变量不生效 Error: could not open `C:Program FilesJavajre1.8.0_131libamd64jvm.cfg'
  • 原文地址:https://www.cnblogs.com/clown3/p/6181415.html
Copyright © 2020-2023  润新知