常用方法
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
})