2013-05-09 127 views
2

如何在Lua中檢查字符串是否爲可執行文件的路徑?看來,標準庫和令人驚訝的LuaFileSystem都沒有提供這種方法。如何檢查文件在Lua中是否可執行?

+1

你是什麼操作系統? – 2013-05-09 16:30:04

+1

使用'loadfile()'並檢查它是否返回錯誤? – hjpotter92 2013-05-09 16:43:22

+2

'loadfile'用於加載Lua代碼,不用於檢查文件是否是二進制可執行文件,@ hjpotter92。 – 2013-05-09 17:10:54

回答

6

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 
+2

哦,這就是我閱讀文檔而不是在REPL中進行實驗的結果。謝謝! – 2013-05-09 17:12:38

4

luaposix具有stat功能。它返回mode領域,其中包括執行權限位的數量(不像LuaFileSystem只給你的文件類型。)

還有access這將檢查的權限僅爲當前用戶。

+0

luaposix看起來很有用,謝謝! – 2013-05-09 17:57:38