• node_fs模块常用API


    fs模块 说明

    • 在Node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。
    • 在fs模块中,所有的方法都分为同步和异步两种实现。
    • 具有sync后缀的方法为同步方法,不具有sync后缀的方法为异步方法。
    • 异步方法一般最后一个参数都为callback;同步则直接返回。

    Node 遵循错误优先回调

    • 回调函数的第一个参数,必须是错误对象error 如果有错误发生,错误将通过第一个参数error返回;
    • 第二个参数作为成功响应的数据,如果没有异常,error会被设为null

    常用API

    创建

    fs.writeFile
    // 异步 / 同步
    // fs.writeFile
    // 若存在该文件,则会覆盖原有数据,若该文件不存在,则会创建该文件,但不能创建文件夹
    fs.writeFile('./index.txt', '只要心中花千树,', err => {
        if (err)
            console.log(err)
    })
    fs.writeFileSync('./index2.txt', '执子之手,')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    fs.appendFile
    // fs.appendFile
    // 若该文件不存在,则会创建该文件写入内容,若存在,则在尾部追加内容
    fs.appendFile('./index.txt', '人生何处不逢春', err => {
        if (err)
            console.log(err)
    })
    fs.appendFileSync('./index2.txt', '与子偕老')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    fs.mkdir
    
    // fs.mkdir
    // 创建文件夹,若文件不存在就创建该文件,若存在就报错
    fs.mkdir('./dir', err => {
        if (err)
            console.log(err)
    })
    fs.mkdirSync('./dir2')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    fs.rm
    // fs.rm
    // 存在这样的文件,删除成功,若不存在则会报错
    fs.rm('./test.txt', err => {
        if (err)
            console.log(err)
    })
    fs.rmSync('./test.txt')
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    fs.rmdir
    
    // fs.rmdir
    // 存在这样的文件jia,删除成功,若不存在则会报错
    fs.rmdir('./test', err => {
        if (err)
            console.log(err)
    })
    fs.rmdirSync('./dir')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    修改

    fs.rename
    
    // fs.rename
    // 修改文件名,可以当做移动文件使用
    fs.rename('../test.txt', './test123.txt', err => {
        if (err)
            console.log(err)
    })
    fs.renameSync('./test123.txt', './test.txt')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    查找

    fs.exists
    
    // fs.exists
    // 判断指定路径文件或目录是否存在,返回值为Boolean
    fs.exists('./index.ts', (err) => {
        if (err)
            console.log(err)
    })
    console.log(fs.existsSync('./index.js'))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    fs.readdir
    
    // fs.readdir
    // 获取指定路径下的所有文件/文件夹名
    // withFileTypes可判断类型 { name: '.idea', path: '../', [Symbol(type)]: 2 }
    fs.readdir('../', {withFileTypes: true}, (err, data) => {
        if (err)
            return console.log(err)
        console.log(data)
    })
    console.log(fs.readdirSync('../'));
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    fs.readFile
    
    // fs.readFile
    // 读取文件,第二个参数设置编码格式,默认为二进制流buffer
    fs.readFile('./index.js', 'utf-8', (err, data) => {
        if (err)
            console.log(err)
        console.log(data)
    })
    console.log(fs.readFileSync('./index.js', 'utf-8'));
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    其他

    fs.copyFile
    
    // fs.copyFile
    // 如果目标文件已经存在,则会覆盖目标文件
    // 异步
    fs.copyFile('../index.html', './index.html', (err) => {
        if (err)
            console.log(err)
    })
    // 同步
    fs.copyFileSync('../index.html', './index.html')
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    fs.stat
    
    // fs.stat
    fs.stat('./', (err, stats) => {
        if (err)
            console.log(err)
        console.log(stats.isDirectory())
    })
    console.log(fs.statSync('./').isDirectory());
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)
    【前端甜点】某视频网站的m4s视频/音频下载方案(20240420)
    独享IP是原生IP吗?
    vue模板语法上集
    力扣:分割回文串java
    带你全方位了解光谱共焦位移传感器
    【GNN报告】香港中文大学杨萌林: 双曲图神经网络在推荐系统与量化上的应用
    PowerManagerService启动-Android12
    Linux命令从入门到实战 ----进程管理
    PyTorch之MLP
  • 原文地址:https://blog.csdn.net/NOfighting/article/details/133047108