如何使用node.jstesting文件权限?

我怎样才能查看一个正在运行的node.js进程对给定文件的权限(读/写/执行)?

我希望fs.Stats对象有一些关于权限的信息,但我没有看到任何信息。 有一些内置的function可以让我做这样的检查吗? 例如:

 var filename = '/path/to/some/file'; if (fs.canRead(filename)) // OK... if (fs.canWrite(filename)) // OK... if (fs.canExecute(filename)) // OK... 

当然,我不必试图在每种模式下打开文件,并作为否定的肯定来处理错误,对吗? 有一个更简单的方法

我迟到了,但是,我正在寻找和你一样的理由,并了解到这一点。

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

检查可读性并不像PHP这样的语言通过在单个库函数中抽象来查看可读性。 一个文件可能对每个人都是可读的,或者只对它的组或对其所有者是可读的; 如果对每个人都不可读,则需要检查您是否真的是该组的成员,或者如果您是该文件的所有者。 通常更容易和更快速(不仅写入代码,而且执行检查)来​​尝试打开文件并处理错误。

如何使用subprocess ?

 var cp = require('child_process'); cp.exec('ls -l', function(e, stdout, stderr) { if(!e) { console.log(stdout); console.log(stderr); // process the resulting string and check for permission } }); 

不知道如果进程和* child_process *共享相同的权限。