常用方法
-
fs.access()
: 检查文件是否存在,以及 Node.js 是否有权限访问。 -
fs.appendFile()
: 追加数据到文件。如果文件不存在,则创建文件。 -
fs.chmod()
: 更改文件(通过传入的文件名指定)的权限。相关方法:fs.lchmod()
、fs.fchmod()
。 -
fs.chown()
: 更改文件(通过传入的文件名指定)的所有者和群组。相关方法:fs.fchown()
、fs.lchown()
。 -
fs.close()
: 关闭文件描述符。 -
fs.copyFile()
: 拷贝文件。 -
fs.createReadStream()
: 创建可读的文件流。 -
fs.createWriteStream()
: 创建可写的文件流。 -
fs.mkdir()
: 新建文件夹。 -
fs.mkdtemp()
: 创建临时目录。 -
fs.rm()
: 删除文件,也可删除目录。 -
fs.rmdir()
: 删除文件夹。 -
fs.rename()
: 重命名/移动 文件或文件夹。 -
fs.open()
: 设置文件模式。 -
fs.readdir()
: 读取目录的内容。 -
fs.readFile()
: 读取文件的内容。相关方法:fs.read()。 -
fs.readlink()
: 读取符号链接的值。 -
fs.realpath()
: 将相对的文件路径指针(...)解析为完整的路径。 -
fs.stat()
: 返回文件(通过传入的文件名指定)的状态,可用来判断文件是否存在。相关方法:fs.fstat()
、fs.lstat()
。 -
fs.symlink()
: 新建文件的符号链接。 -
fs.truncate()
: 将传递的文件名标识的文件截断为指定的长度。相关方法:fs.ftruncate()
。 -
fs.link()
: 新建指向文件的硬链接。 -
fs.unlink()
: 删除文件或符号链接。 -
fs.unwatchFile()
: 停止监视文件上的更改。 -
fs.utimes()
: 更改文件(通过传入的文件名指定)的时间戳。相关方法:fs.futimes()
。 -
fs.watchFile()
: 开始监视文件上的更改。相关方法:fs.watch()。 -
fs.writeFile()
: 将数据写入文件。相关方法:fs.write()。
使用例子
判断文件/目录是否存在
使用 fs.access
// 判断文件/目录 是否存在
fs.access('./data', fs.constants.F_OK, err => {
console.log(`${err ? '不存在' : '存在'}`);
})
// 判断文件是否可读
fs.access(file, constants.R_OK, (err) => {
console.log(`${file} ${err ? '不可读' : '可读'}`);
});
// 判断文件是否可写
fs.access(file, constants.W_OK, (err) => {
console.log(`${file} ${err ? '不可写' : '可写'}`);
});
使用 fs.stat()
fs.stat('./data', (err, stats) => {
if (err) console.log('文件/目录不存在')
// 不存在时,stats 为 undefined
console.log('stats:', stats)
})
创建目录
创建一级文件夹,多层级会报错
fs.mkdir('./data', err => {
if (err) throw err
})
创建多层级目录
fs.mkdir('./data/test/test', { recursive: true }, err => {
if (err) throw err
})
删除目录
删除指定文件夹,且该文件夹下必须为空
fs.rmdir('./data', err => {
if (err) throw err
})
删除目录,包括该目录下的所有文件夹与文件
fs.rmdir('./data/test', { recursive: true }, err => {
if (err) throw err
})
同上一样的效果
fs.rm('./data/test', { recursive: true }, err => {
if (err) throw err
})
删除文件
使用 fs.unlink
fs.unlink('./data/test.txt', err => {
if (err) throw err
})
使用 fs.rm
fs.rm('./data/test.txt', err => {
if (err) throw err
})