P07:node内置模块 fs(2)

575 阅读2分钟

相关文章

今天来讲一下其他常用的fs直属api

fs.Stat

  • 对象提供了关于文件的信息
    const fs = require('fs')
    fs.stat('./11_fs_stat.js',(err, stats) => {
        if (err) throw err
        console.log(stats.isFile()) // 是否为文件 true
        console.log(stats.isDirectory()) // 是否为文件夹 false
        console.log(stats) // 所有信息 ...
    })
    

特殊技巧

    // stats对象的使用技巧 判断一个文件是不是存在
    fs.stat('./11111_fs_stat.js',(err, stats) => {
        if (err) {
            // 只要报错,那么就说明文件不存在
            console.log('文件不存在,以及其他业务逻辑')
            return
        }
    })

fs.rename

  • 修改文件名
const fs = require('fs')
fs.rename('./test.js', 'test.txt', (err) => {
    if (err) throw err
    console.log('done!')
})

fs.unlink

  • 删除文件
const fs = require('fs')

fs.unlink('./test.txt', err => {
    if(err) throw err
    console.log('done!')
})

fs.readdir

  • 读取文件夹
const fs = require('fs')
fs.readdir('./', (err, files) => {
    if(err) throw err
    // 注意是将所有的下属文件名,置于一个array
    console.log(files)
})

fs.mkdir

  • 创建一个文件夹
const fs = require('fs')

fs.mkdir('test', (err) => {})

fs.rmdir

  • 删除文件夹
const fs = require('fs')
// 不写回调函数
fs.rmdir('./test')
/**
 * 报错
 * fs.js:137
    throw new ERR_INVALID_CALLBACK();
    ^

    TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
 */
// 一部不写回调函数会报一个警告,但是在后续的版本中会报错,异步均需要编写回调函数
const fs = require('fs')
fs.rmdir('./test', err => {}) 推荐

fs.watch (还有一个类似fs.watchFile)

  • 监视文件变化
  • fs.watch 的 API 在各个平台上并非 100% 一致,在某些情况下不可用。仅在 macOS 和 Windows 上支持 recursive 选项
  • 处理文件中非常有用
const fs = require('fs')
// 回调函数一参数为改变的类型,二参数为改变的文件
// recursive 回调监听子文件夹;
fs.watch('./',{recursive: true},(eventType, filename) => {
    console.log(eventType, filename)
})

至此常用的api以及内置模块介绍完毕,下面将会介绍静态服务器。

close