如何检查文件在node.js中是否可执行?

如何检查文件在node.js中是否可执行?

也许类似

fs.isExecutable(function (isExecutable) { }) 

你会使用fs.stat调用。

fs.stat调用返回一个fs.Stats对象。

在那个对象中是一个mode属性。 该模式会告诉你,如果该文件是可执行的。

在我的情况下,我创build了一个文件,并做了一个chmod 755 test_file ,然后通过以下代码运行它:

 var fs = require('fs'); test = fs.statSync('test_file'); console.log(test); 

我得到的test.mode是33261。

此链接有助于将mode转换回等效的unix文件权限。

看看https://www.npmjs.com/package/executable它甚至有一个.sync()方法

 executable('bash').then(exec => { console.log(exec); //=> true }); 

另一个只依赖内置fs模块的选项是使用fs.access或fs.accessSync 。 这种方法比获取和parsing文件模式更容易。 一个例子:

 const fs = require('fs'); fs.access('./foobar.sh', fs.constants.X_OK, (err) => { console.log(err ? 'cannot execute' : 'can execute'); }); 

在Node中, fs.stat方法返回一个fs.Stats对象,您可以通过fs.Stats.mode属性获取文件权限。 从这篇文章: Nodejs文件权限