fs(file system)是一个对文件的增删查改模块工具,下面例子列举同步和异步的方法

    1. const fs = require('fs')
    2. const fsPromises = require('fs/promises') //node ^10
    3. //文件夹操作 start
    4. // fs.mkdir('logs', (err) => {
    5. // if (err) throw err
    6. // console.log('文件夹创建succ')
    7. // })
    8. // fs.rename('./logs', './log', () => {
    9. // console.log('文件夹修改名称succ')
    10. // })
    11. // fs.rmdir('./log', () => {
    12. // console.log('删除成功')
    13. // })
    14. // fs.readdir('./logs', (err, result) => {
    15. // console.log(result)
    16. // })
    17. //文件夹操作end
    18. //文件操作start
    19. // fs.writeFile('./logs/log1.log', 'hello\nworld', (err) => {
    20. // console.log('创建并写入内容succ')
    21. // })
    22. // fs.appendFile('./logs/log1.log', '\nappend Content', (err) => {
    23. // console.log('添加文件内容succ')
    24. // })
    25. // fs.unlink('./logs/log1.log', (err) => {
    26. // console.log('删除文件suc')
    27. // })
    28. // fs.readFile('./logs/log1.log', 'utf-8', (err, content) => {
    29. // console.log('读取文件内容', content)
    30. // })
    31. // fs.readFile('./logs/log1.log', (err, content) => {
    32. // console.log('读取文件内容', content.toString())
    33. // })
    34. //异步读取
    35. // fs.readFile('./logs/log1.log', (err, content) => {
    36. // console.log(content.toString())
    37. // })
    38. // //同步读取
    39. // const content = fs.readFileSync('./logs/log1.log')
    40. // console.log(content)
    41. // ; (async () => {
    42. // let res = await fsPromises.readFile('./logs/log1.log')
    43. // console.log(res.toString())
    44. // })()
    45. // for (var i = 0; i < 10; i++) {
    46. // fs.writeFile(`./logs/log${i}.log`, `log-${i}`, (err) => {
    47. // console.log('批量创建succ')
    48. // })
    49. // }
    50. //递归获取文件内容
    51. function readDir(dir) {
    52. fs.readdir(dir, (err, content) => {
    53. content.forEach((value, index) => {
    54. let dirStr = `${dir}/${value}`
    55. fs.stat(dirStr, (err, stats) => {
    56. //判断是否是文件夹
    57. if (stats.isDirectory()) {
    58. readDir(dirStr)
    59. } else {
    60. fs.readFile(dirStr, (err, content) => {
    61. console.log(content.toString())
    62. })
    63. }
    64. })
    65. })
    66. })
    67. }
    68. // readDir('./')
    69. //监听文件
    70. // //watch会因为系统的不同,并且在某些情况下不可用。参考node.js文档api详细介绍
    71. // fs.watch('./logs/log0.log', (err) => {
    72. // console.log('file has changed')
    73. // })
    74. // //watchFile兼容性会有所改善
    75. // fs.watchFile('./logs/log1.log', (curr, prev) => {
    76. // console.log(`the current mtime is: ${curr.mtime}`);
    77. // console.log(`the previous mtime was: ${prev.mtime}`);
    78. // })
    79. //文件操作end