node基本操作

268 阅读1分钟

fs

创建文件夹

fs.mkdir('logs', (err) => {
  if(err) throw err;
  console.log('文件夹创建成功');
})

重命名文件夹

fs.rename('./logs', './log', (err, content) => {
  console.log('重命名成功。');
})

删除文件夹

fs.rmdir('./log', (err, content) => {
  console.log('删除成功');
})

读取文件

fs.readFile('./logs/log-0.log', 'utf-8', (err, content) => {
  console.log(content);
})

写入文件

fs.writeFile('./logs/log.log', `hello \nworld`, (err, content) => {
  console.log('写入成功。');
})

删除文件

fs.unlink('./logs/log-9.log', (err, content) => {
  console.log('删除成功');
})

批量写入文件

for(let i = 0; i < 10; i++){
  fs.writeFile(`./logs/log-${i}.log`,`log-${i}`, (err, content) => {
    console.log('写入成功')
  })
}

批量写入文件

function readDir(dir) {
  fs.readdir(dir, (err, stats) => {
    console.log('stats',stats);
    stats.forEach((stat,index) => {
      fs.stat(`${dir}/${stat}`, (err, data) => {
        if(data.isFile()) {
          fs.readFile(`${dir}/${stat}`, 'utf-8', (err, content) => {
            console.log(content);
          })
        }else {
          readDir(`${dir}/${stat}`)
        }
      })
    })
  })
}

监听一个文件

fs.watch('./logs/log-0.log',(err,data ) => {
  console.log('文件被更新');
})

将某个文件夹的内容复制到其他的文件夹下

function copyDir(dir, outdir) {
  fs.readdir(dir, (err, stats) => {
    stats.forEach((stat, index) => {
      fs.stat(`${dir}/${stat}`, (err, data) => {
        console.log('data',data)
        if (data.isFile()) {
          fs.copyFileSync(`${dir}/${stat}`,`${outdir}/${stat}`)
        } else {
          if(!fs.existsSync(`${outdir}/${stat}`)) {
            fs.mkdirSync(`${outdir}/${stat}`)
          }
          copyDir(`${dir}/${stat}`, `${outdir}/${stat}`)
        }
      })
    })
  })
}

将某个文件夹下的文件合并到一块

function ConcatFile(__dirname, content="") {
    if (!fs.existsSync(__dirname)) {
      //没有该文件夹
      console.log("没有该文件夹");
      return;
    }
    let files = fs.readdirSync(__dirname);
    files.forEach((item, index) => {
      //遍历原目录下的文件名
      var item_path = path.resolve(__dirname, item); //获取原文件路径
      var temp = fs.statSync(item_path); //获取原目录下所有文件的文件信息
      if (temp.isFile()) {
        // 是文件
  
        let fileContent = fs.readFileSync(item_path,'utf-8');
        content += fileContent
      } else if (temp.isDirectory()) {
        // 是目录
        ConcatFile(item_path, content);
      }
    });
    return content
  }

拷贝文件

fs.copyFile('源文件.txt', '目标文件.txt', (err) => {
if (err) throw err;
  console.log('源文件已拷贝到目标文件');
});