zoukankan      html  css  js  c++  java
  • 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');
          });
      });
    生命是一场华丽的绽放!
  • 相关阅读:
    解决ffmpeg打开流各种超时问题
    ffmpeg函数使用
    如何从AVFrame::data【0】里获取RGB24数据和YUYV422数据
    ffmpeg取rtsp流时av_read_frame阻塞的解决办法
    FFMPEG实时解码网络视频流(回调方式)
    JavaScript 演练(7). 赋值与引用
    JavaScript 演练(5). 模拟类
    曾经对 TMemoryStream.Memory 错误的理解
    JavaScript 演练(10). 谁的 this ?
    JavaScript 演练(6). 函数的定义与自执行
  • 原文地址:https://www.cnblogs.com/clown3/p/6181415.html
Copyright © 2011-2022 走看看