如何检查文件在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文件权限