node fs文件系统常用操作总结

背景

node文件系统虽说api较为简洁明了,但某些组合操作还是容易忘记,特此对一些文件常用操作进行总结出最佳实践的办法,方便查阅。

注:本文章开发环境基于node 14+版本

API介绍

原有的fs库应该抛弃了,使用全新的fs/promises

const fs= require('fs/promises')
// 以下api均已promise化

// 读取目录文件和文件夹, options参数一般用不到,可以用来指定编码
fs.readdir(path, options)
// 返回文件类型,此时返回的是数组,每个元素都是文件类Dirent,该类可获取文件名以及判断文件类型
fs.readdir(path, { withFileTypes: true })

// 将 oldPath 重命名为 newPath。
fs.rename(oldPath, newPath)
// 整个文件的读写,基础班
fs.readFile(path)
fs.writeFile(path, data)// data最好是字符串类型

读取文件与文件夹

常规使用

const fs= require('fs/promises')
// 以下api均已promise化

// 读取目录文件和文件夹, options参数一般用不到,可以用来指定编码
fs.readdir(path, options)

// 读取当前目录下所有文件和文件夹,以数组形式返回
fs.readdir('./').then(fileList => {
	console.log('fileList', fileList) // [a.js, b, c.json, 目录...]
}) .catch(err => {
	console.log('读取失败', err)
})

同步递归读取目录下所有文件与文件夹

const fs = require('fs')
const path = require('path')

const readFile = (filePath) => {
    let result = []
    const fileList = fs.readdirSync(filePath, { withFileTypes: true })
    fileList.forEach(f => {
        const newFilePath = path.resolve(filePath, f.name)
        if (f.isDirectory()) {
            result = result.concat(readFile(newFilePath))
        } else {
            result.push(newFilePath)
        }
    })
    return result
}

const result = readFile('./src')
console.log('result', result)

重命名文件

const fs= require('fs/promises')
// 以下api均已promise化

// 将 oldPath 重命名为 newPath。
fs.rename(oldPath, newPath)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值