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); }