【问题标题】:How to check if a file is executable in Lua?如何检查文件是否在 Lua 中可执行?
【发布时间】:2013-05-04 04:16:38
【问题描述】:

如果字符串是可执行文件的路径,我如何检查 Lua?似乎标准库和令人惊讶的 LuaFileSystem 都没有提供这样做的方法。

【问题讨论】:

  • 使用loadfile()并检查它是否返回错误?
  • loadfile 用于加载 Lua 代码,而不用于检查文件是否为二进制可执行文件,@hjpotter92。
  • @Omar,您表达问题的方式似乎是您想知道如何检查文件是否可以在 Lua 中运行(即,如果它是 Lua 脚本)。我有同样的印象,这就是为什么 loadfile 出现了,我想......
  • 哦,好的,@W.B.,我会改写。

标签: lua file-attributes


【解决方案1】:

LuaFileSystem 有 lfs.attributes() 函数,它返回一个表。相当反常的是,它有一个名为“mode”的键,其中包含一个描述节点“类型”(文件、目录、套接字等)的字符串。

虽然它没有在手册中列出:http://keplerproject.github.io/luafilesystem/manual.html ...这似乎是该模块的规范参考...该表中还有一个“权限”键。我认为您可以将其解析为任何“x”字符。

我发现了这个:

#!lua 
local lfs = require 'lfs'
attr = lfs.attributes('./some_file')
for name, value in pairs(attr) do
    print (name,value)
    end

【讨论】:

  • 哦,这就是我阅读文档而不是在 REPL 中进行试验所得到的。谢谢!
【解决方案2】:

luaposix 具有stat 功能。它返回一个包含执行权限位的 mode 字段的数字(不像 LuaFileSystem,它只给你文件类型。)

还有access,它只会检查当前用户的权限。

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多