面试题答案
一键面试const fs = require('fs');
const path = require('path');
const filePath = path.join(__dirname, 'example.txt');
fs.access(filePath, fs.constants.R_OK, (err) => {
if (!err) {
console.log('该文件具有可读权限');
} else {
console.log('该文件没有可读权限');
}
});
原理解释:
fs.access
方法用于测试用户对指定路径的权限。它接受三个参数:- 第一个参数
path
是要检查权限的文件或目录的路径。这里通过path.join(__dirname, 'example.txt')
获取当前目录下的example.txt
文件路径,__dirname
是Node.js的全局变量,表示当前执行脚本所在的目录。 - 第二个参数
mode
用于指定要检查的权限。fs.constants.R_OK
是Node.js提供的常量,表示可读权限。 - 第三个参数是一个回调函数,当权限检查完成后会调用该回调函数。回调函数接受一个
err
参数,如果权限检查成功,err
为null
;如果权限检查失败,err
会包含错误信息。在回调函数中,根据err
是否为null
来判断文件是否具有可读权限,并输出相应的信息。
- 第一个参数