我如何可以检查的权限(读/写/执行),一个正在运行的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...
当然我没有尝试打开每个这些模式的文件和处理错误的消极肯定,对不对? 这里一定是一个简单的方法...
我迟到了,但是,我一直在寻找同样的理由,你和了解这一点。
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语言使它看起来通过在单个库函数提取它。 一个文件可能是可读的每个人,或者只有它的组,或仅它的主人; 如果不readble给大家,你将需要检查,如果你实际上是组的成员,或者如果你是该文件的所有者。 它通常是更容易和更快的(不仅是写代码,而且执行检查)来尝试打开该文件,并处理错误。
如何使用一个子进程 ?
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 *共享相同的权限。