mae*_*ics 7 permissions file node.js
如何查看正在运行的node.js进程对给定文件的权限(读/写/执行)?
我希望该fs.Stats对象有一些关于权限的信息,但我没有看到任何信息.是否有一些内置功能可以让我进行这样的检查?例如:
var filename = '/path/to/some/file';
if (fs.canRead(filename)) // OK...
if (fs.canWrite(filename)) // OK...
if (fs.canExecute(filename)) // OK...
Run Code Online (Sandbox Code Playgroud)
当然,我不必尝试在每种模式下打开文件并处理错误作为否定肯定,对吧?必须有一个更简单的方法......
小智 12
我迟到了,但是,我正在寻找与你相同的理由,并了解到这一点.
fs.access是你需要的.它可从节点v0.11.15获得.
function canWrite(path, callback) {
fs.access(path, fs.W_OK, function(err) {
callback(null, !err);
});
}
canWrite('/some/file/or/folder', function(err, isWritable) {
console.log(isWritable); // true or false
});
Run Code Online (Sandbox Code Playgroud)
很好地提到了fs.accessSync(path[, mode]):
同步测试用户对path指定的文件或目录的权限。mode 参数是一个可选整数,指定要执行的可访问性检查。检查文件访问常量以获得模式的可能值。可以创建一个由两个或多个值的按位或组成的掩码(例如fs.constants.W_OK | fs.constants.R_OK)。
如果任何可访问性检查失败,则会抛出错误。否则,该方法将返回未定义。
嵌入示例:
try {
fs.accessSync('etc/passwd', fs.constants.R_OK | fs.constants.W_OK);
console.log('can read/write');
} catch (err) {
console.error('no access!');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7874 次 |
| 最近记录: |