Node.js 检查文件或目录的权限
示例
fs.access()确定路径是否存在以及用户对该路径上的文件或目录具有什么权限。fs.access而是不返回结果,如果不返回错误,则说明该路径存在并且用户具有所需的权限。
权限模式可用作fs对象的属性,fs.constants
fs.constants.F_OK-具有读/写/执行权限(如果未提供任何模式,则为默认设置)
fs.constants.R_OK-具有读取权限
fs.constants.W_OK-具有写权限
fs.constants.X_OK-具有执行权限(与fs.constants.F_OKWindows相同)
异步地
var fs = require('fs'); var path = '/path/to/check'; //检查执行权限 fs.access(path, fs.constants.X_OK, (err) => { if (err) { console.log("%s doesn't exist", path); } else { console.log('can execute %s', path); } }); //检查我们是否具有读/写权限 //指定多种权限模式时 //每个模式都由管道分隔: fs.access(path, fs.constants.R_OK | fs.constants.W_OK, (err) => { if (err) { console.log("%s doesn't exist", path); } else { console.log('can read/write %s', path); } });
同步地
fs.access也有一个同步版本fs.accessSync。使用时fs.accessSync,必须将其包含在try/catch块中。
//检查写权限 try { fs.accessSync(path, fs.constants.W_OK); console.log('can write %s', path); } catch (err) { console.log("%s doesn't exist", path); }