Node中fs.stat
方法返回一个fs.Stats
对象对,我可以通过fs.Stats.mode
属性。
以下是同一目录的 Node 和 shell 的真实输出:
node shell
17407 d rwx rwx rwt
16877 d rwx r-x r-x
16749 d r-x r-x r-x
16832 d rwx --- ---
我需要知道如何解析 fs.Stats.mode
数字以获取权限。
回答
数字是八进制数,转换成十进制后是这样的:
17407 41777 d rwx rwx rwt
16877 40755 d rwx r-x r-x
16749 40555 d r-x r-x r-x
16832 40777 d rwx --- ---
而八进制到十进制的转换是这样的:
parseInt(stat.mode.toString(8), 10)
Linux 文件权限的精彩教程 - https://www.linux.com/learn/understanding-linux-file-permissions
最佳答案
var checkPermission = function (file, mask, cb){
fs.stat (file, function (error, stats){
if (error){
cb (error, false);
}else{
cb (null, !!(mask & parseInt ((stats.mode & parseInt ("777", 8)).toString (8)[0])));
}
});
};
canExecute():
checkPermission (<path>, 1, cb);
canRead():
checkPermission (<path>, 4, cb);
canWrite():
checkPermission (<path>, 2, cb);
关于file - Nodejs 文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775884/