node 中 fs模块
Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
建议大家使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。
如果同步方法报错,则会造成执行失败。
首先需要引入 fs模块
const fs = require('fs')
判断目录是否存在
const stats = fs.statSync('./index.js') // Stats
fs.stat('./index.js', function (error, state) {
error // 错误信息
state // Stats
})
Stats {
dev: 3472390110, // 包含文件的设备的数字标识符。
mode: 33206, // 描述文件类型和模式的位字段。
nlink: 1, // 文件存在的硬链接数。
uid: 0, // 拥有文件的用户的数字用户标识符 (POSIX)。
gid: 0, // 拥有文件的群组的数字群组标识符 (POSIX)。
rdev: 0, // 如果文件代表设备,则为数字设备标识符。
blksize: 4096, // i/o 操作的文件系统块大小。
ino: 12384898978083840, // 文件的文件系统特定的索引节点编号。
size: 8826, // 文件的大小(以字节为单位)。
blocks: 24, // 为此文件分配的块数。
atimeMs: 1629084741808.1633, // 指示最后一次访问此文件的时间戳,以 POSIX Epoch 以来的毫秒数表示。
mtimeMs: 1629084732153.9712, // 指示最后一次修改此文件的时间戳,以 POSIX Epoch 以来的毫秒数表示。
ctimeMs: 1629084732153.9712, // 指示最后一次更改文件状态的时间戳,以 POSIX Epoch 以来的毫秒数表示。
birthtimeMs: 1606380451997.3667, // 指示此文件创建时间的时间戳,以 POSIX Epoch 以来的毫秒数表示。
atime: 2021-08-16T03:32:21.808Z, // 指示最后一次访问此文件的时间戳。
mtime: 2021-08-16T03:32:12.154Z, // 指示最后一次修改此文件的时间戳。
ctime: 2021-08-16T03:32:12.154Z, // 指示最后一次更改文件状态的时间戳。
birthtime: 2020-11-26T08:47:31.997Z // 指示此文件创建时间的时间戳。
}
Stats.isDirectory() // 如果 <fs.Stats> 对象描述文件系统目录,则返回 true。
Stats.isFile() // 如果 <fs.Stats> 对象描述常规文件,则返回 true。
读取目录
读取目录必须保证当前路径时一个文件夹路径而不是文件
const fileList = fs.readdirSync('./fileList') // 文件目录
fs.readdir(dirPath, function (error, fileList) {
error // 错误信息
fileList // 文件目录
})
fileList // 文件夹中的文件目录 例如: [ '.git', 'index.js' ]
读取文件
读取文件必须要保证 当前路径 的文件存在
第二个参数 为 string 表示以什么文件编码打开
fs.readFileSync('./index.js', 'utf-8')
fs.readFile('./index.js', 'utf-8', function (error, data) {
error // 错误信息
data // 文件内容
})
删除文件
删除文件必须要保证 当前路径 是一个文件
fs.unlinkSync('./index.js')
fs.unlink('./index.js', function (error) {
error // 错误信息
})
// 如果删除成功 不会有错误信息
删除文件夹
删除文件夹必须要保证 当前路径 是一个文件夹
fs.rmdirSync('./fileList')
fs.rmdir('./fileList', function (error) {
error // 错误信息
})
// 如果删除成功 不会有错误信息
创建文件夹
创建文件夹必须要保证当前路径的 所有父级 路径都存在
fs.mkdirSync('./fileList')
fs.mkdir('./fileList', function (error) {
error // 错误信息
})
// 如果创建成功 不会有错误信息
创建文件
创建文件必须要保证当前路径的 所有父级 都存在
const data = '文件内容'
fs.writeFileSync('./index.js', data)
fs.writeFile('./fileList', data, function (error) {
error // 错误信息
})
// 如果创建成功 不会有错误信息
追加文件
追加文件文件是指 在文件的最后面 添加一段数据
追加文件必须要保证 当前路径 的文件存在
const data = '需要追加的文件内容'
fs.appendFileSync('./index.js', data)
fs.appendFile('./fileList', data, function (error) {
error // 错误信息
})
// 如果创建成功 不会有错误信息
拷贝文件
第一个参数为 当前文件路径
第二个参数为 需要拷贝到的文件路径(可以修改文件名)
拷贝文件必须要保证 当前路径的文件 和 需要拷贝到路径的所有父级路径 存在
fs.copyFileSync('./index.js', './index_copy.js')
fs.copyFile('./index.js', './index_copy.js', function (error) {
error // 错误信息
})
// 如果拷贝成功 不会有错误信息