<
>

Node.js文件系统fs扩展fs-extra说明

2022-08-04 10:48:18 来源:易采站长站 作者:

目录
安装使用Async 方法方法copy()emptyDir()ensureFile()ensureDir()move()outputFile()outputJson()writeJson()pathExists()readJson()remove()

fs-extra

fs-extra 是fs 的扩展,继承了 fs 所有方法并为这些方法添加了 promise 语法

安装

npm i fs-extra

使用

const fse = require('fs-extra')

Async>
    copyemptyDirensureFileensureDirensureLinkensureSymlinkmkdirpmkdirsmoveoutputFileoutputJsonpathExistsreadJsonremovewriteJson

    主要介绍异步的相关方法

    方法

    方法的具体使用,可以看官方文档详细介绍,这里只是简单介绍一下这些方法的使用和作用

    copy()

    copy(src:string, dest:string, [options:object, callback:function])

    注意:src 如果是目录,它将复制此目录内的所有内容,而不是整个目录本身;dest 注意的是 ,如果 src 是文件, dest 则不能是目录

    复制文件或目录,目录可以包含内容

    // 复制文件
    fse.copy('old.txt', 'new.txt', err => {
      if (err) throw err
      console.log('success')
    })
    // 复制目录,目录可以包含内容
    fse.copy('utils', 'newutils', err => {
      if (err) throw err
      console.log('success')
    })
    // promise 
    fse.copy('utils', 'newutils')
    .then(() => {
        console.log('success')
    })
    .catch(err => {
        console.log(err)
    })
    // async/await
    async function test () {
        try {
            await fse.copy('utils', 'newutils')
            console.log('success')
        } catch (err) {
            console.log(err)
        }
    }
    test()

    emptyDir()

    emptyDir(dir:string, [callback:function])

    确保目录为空,如果目录不为空,则删除目录内容。如果该目录不存在,则创建该目录。目录本身不会被删除

    实例

    fse.emptyDir('newutils', err => {
      if (err) throw err
      console.log('success')
    })

    ensureFile()

    ensureFile(file:string, [callback:func])

    确保文件存在,如果请求创建的文件位于不存在的目录中,则会创建这些目录。如果该文件已存在,则不进行修改

    实例

    fse.ensureFile('newutils/seq.js', err => {
      if (err) throw err
      console.log('success')
    })

    ensureDir()

    ensureDir(dir:string, [callback:func])

    如果目录结构不存在,则创建它,如果目录存在,则不进行创建

    等同于 mkdirs()、mkdirp()

    实例

    fse.ensureDir('newutil', err => {
      if (err) throw err
      console.log('success')
    })

    move()

    move(src:string, dest:string, [options:object, callback:func])

    移动文件或目录

    实例

    fse.move('newutils/seq.js', 'newutil/seq.js', err => {
      if (err) throw err
      console.log('success')
    })

    outputFile()

    outputFile(file:string, data:string|Buffer|Uint8Array, [options:String|object, callback:func])

    写入文件数据,如果父级目录不存在,则创建它。file 必须是文件路径,不允许使用缓冲区或文件描述符

    实例

    fse.outputFile('newutil/seq.js', 'hello, Node.js', err => {
      if (err) throw err
      console.log('success')
    })

    outputJson()

    outputJson(file:string, object:object, [options:object, callback:func])

    写入JSON 文件 JSON 数据,默认 w 模式,会覆盖文件原有内容;如果目录不存在,会被创建

    实例

    fse.outputJson('newutil/seq.json', { name: 'duli' }, err => {
      if (err) throw err
      console.log('success')
    })

    writeJson()

    writeJson(file, object, [options, callback])

    将对象写入 JSON 文件,几乎与 outputJson 相同,除了必须保证目录存在外

    实例

    fse.writeJSON('newutil/seq.json', { name: 'cc' }, err => {
      if (err) throw err
      console.log('success')
    })

    pathExists()

    pathExists(file:string, [, callback:func])

    检查文件系统来测试给定路径是否存在

    实例

    fse.pathExists('newutil/seq.js', (err, exists) => {
      if (err) throw err
      console.log(exists)
    })

    readJson()

    readJson(file:string, [options:object, callback:func])

    读取 JSON 文件,然后将其解析为对象

    实例

    fse.readJson('newutil/seq.json', (err, obj) => {
      if (err) throw err
      console.log(obj)
      console.log(typeof obj)
    })

    remove()

    remove(path:String, [callback:func])

    删除文件或目录,该目录可以包含内容

    实例

    fse.remove('new.txt', err => {
      if (err) throw err
      console.log('success')
    })

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持易采站长站。 

暂时禁止评论

微信扫一扫

易采站长站微信账号