fs(file system)是一个对文件的增删查改模块工具,下面例子列举同步和异步的方法
const fs = require('fs')const fsPromises = require('fs/promises') //node ^10//文件夹操作 start// fs.mkdir('logs', (err) => {// if (err) throw err// console.log('文件夹创建succ')// })// fs.rename('./logs', './log', () => {// console.log('文件夹修改名称succ')// })// fs.rmdir('./log', () => {// console.log('删除成功')// })// fs.readdir('./logs', (err, result) => {// console.log(result)// })//文件夹操作end//文件操作start// fs.writeFile('./logs/log1.log', 'hello\nworld', (err) => {// console.log('创建并写入内容succ')// })// fs.appendFile('./logs/log1.log', '\nappend Content', (err) => {// console.log('添加文件内容succ')// })// fs.unlink('./logs/log1.log', (err) => {// console.log('删除文件suc')// })// fs.readFile('./logs/log1.log', 'utf-8', (err, content) => {// console.log('读取文件内容', content)// })// fs.readFile('./logs/log1.log', (err, content) => {// console.log('读取文件内容', content.toString())// })//异步读取// fs.readFile('./logs/log1.log', (err, content) => {// console.log(content.toString())// })// //同步读取// const content = fs.readFileSync('./logs/log1.log')// console.log(content)// ; (async () => {// let res = await fsPromises.readFile('./logs/log1.log')// console.log(res.toString())// })()// for (var i = 0; i < 10; i++) {// fs.writeFile(`./logs/log${i}.log`, `log-${i}`, (err) => {// console.log('批量创建succ')// })// }//递归获取文件内容function readDir(dir) {fs.readdir(dir, (err, content) => {content.forEach((value, index) => {let dirStr = `${dir}/${value}`fs.stat(dirStr, (err, stats) => {//判断是否是文件夹if (stats.isDirectory()) {readDir(dirStr)} else {fs.readFile(dirStr, (err, content) => {console.log(content.toString())})}})})})}// readDir('./')//监听文件// //watch会因为系统的不同,并且在某些情况下不可用。参考node.js文档api详细介绍// fs.watch('./logs/log0.log', (err) => {// console.log('file has changed')// })// //watchFile兼容性会有所改善// fs.watchFile('./logs/log1.log', (curr, prev) => {// console.log(`the current mtime is: ${curr.mtime}`);// console.log(`the previous mtime was: ${prev.mtime}`);// })//文件操作end
