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

 更新时间:2022年08月04日 08:43:01   作者:风如也  
这篇文章主要介绍了Node.js文件系统fs扩展fs-extra说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

fs-extra

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

安装

npm i fs-extra

使用

const fse = require('fs-extra')

Async 方法

  • copy
  • emptyDir
  • ensureFile
  • ensureDir
  • ensureLink
  • ensureSymlink
  • mkdirp
  • mkdirs
  • move
  • outputFile
  • outputJson
  • pathExists
  • readJson
  • remove
  • writeJson

主要介绍异步的相关方法

方法

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

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')
})

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • pnpm实现依赖包共享和依赖包项目隔离的方法详解

    pnpm实现依赖包共享和依赖包项目隔离的方法详解

    pnpm是Node.js的包管理器,它是 npm 的直接替代品,相对于npm和yarn它的优点就在于速度快和高效节省磁盘空间,本文主要讲解pnpm相比于npm/yarn如何利用软硬链接来节省磁盘空间,以及如何实现依赖包共享和依赖包项目隔离的,需要的朋友可以参考下
    2024-05-05
  • pnpm的安装及其使用教程(汇总)

    pnpm的安装及其使用教程(汇总)

    pnpm是 Node.js 的替代包管理器,它是 npm 的直接替代品,速度更快、效率更高,它由 npm/yarn 衍生而来,但却解决了 npm/yarn 内部潜在的 bug,并且极大了地优化了性能,本文给大家介绍pnpm的安装及其使用,感兴趣的朋友一起看看吧
    2023-12-12
  • 详解npm与package.json之间的联系

    详解npm与package.json之间的联系

    这篇文章主要为大家介绍了npm与package.json之间的联系图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • node.js安装超详细步骤教程(推荐!)

    node.js安装超详细步骤教程(推荐!)

    其实Node.js就是运行在服务端的JavaScript,Node.js是一个基于Chrome JavaScript运行时建立的一个平台,下面这篇文章主要给大家介绍了关于node.js安装超详细步骤教程的相关资料,需要的朋友可以参考下
    2023-06-06
  • nodejs中解决异步嵌套循环和循环嵌套异步的问题

    nodejs中解决异步嵌套循环和循环嵌套异步的问题

    本篇文章主要介绍了nodejs中解决异步嵌套循环和循环嵌套异步的问题,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • Node.js 去掉种子(torrent)文件里的邪恶信息

    Node.js 去掉种子(torrent)文件里的邪恶信息

    torrent文件,又被称为种子,原来只是用于记录 bt下载当中所需信息的一种文件。但是随着互联网的极大发展,一些人士将一些邪恶的信息注入到了小小的 torrent文件当中,种子从此变成了邪恶的代名词。
    2015-03-03
  • 吐槽一下我所了解的Node.js

    吐槽一下我所了解的Node.js

    用了一年多 Node.js, 现在已经是 Node.js 的脑残粉了,这篇日志比较杂,算是我对 Node.js 方方面面的一个集中吐槽。
    2014-10-10
  • Node.js系列之连接DB的方法(3)

    Node.js系列之连接DB的方法(3)

    这篇文章主要为大家详细介绍了Node.js系列之连接DB的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • node.js集成百度UE编辑器

    node.js集成百度UE编辑器

    这篇文章主要介绍了node.js集成百度UE编辑器的方法,需要的朋友可以参考下
    2015-02-02
  • 使用Puppeteer实现页面遍历的示例代码

    使用Puppeteer实现页面遍历的示例代码

    很多时候我们需要遍历我们的页面来检查页面是否存在问题,以更好的保证可用性和安全性,下面就来讲讲如何使用puppeteer来实现页面遍历的功能吧
    2023-06-06

最新评论