2013-05-09 2 views
2

문자열이 실행 파일의 경로 인 경우 어떻게 루아를 검사 할 수 있습니까? 놀랍게도 표준 라이브러리도 LuaFileSystem도이를 수행 할 방법을 제공하지 못하는 것 같습니다.파일이 루아에서 실행 가능한지 확인하는 방법은 무엇입니까?

+1

당신의 OS는 무엇입니까 :

나는이 함께 발견? –

+1

'loadfile()'을 사용하여 오류를 반환하는지 확인 하시겠습니까? – hjpotter92

+2

'loadfile'은 루아 코드를로드하기위한 것이고, 파일이 바이너리 실행 파일인지 체크하는 것이 아니라 @ hjpotter92입니다. –

답변

6

LuaFileSystem에는 테이블을 반환하는 lfs.attributes() 함수가 있습니다. 그것은 오히려 불리하게도, 노드의 "유형"(파일, 디렉토리, 소켓 등)을 설명하는 문자열을 포함하는 "모드"라는 키를 가지고 있습니다.

설명서에 나와 있지 않지만 ... 해당 모듈에 대한 표준 참조 인 것 같습니다 ... 해당 테이블에 '사용 권한'키가 있습니다. 난 당신이 어떤 "엑스"문자에 대한 구문 분석 수 있다고 생각.

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

아, 그게 REPL에서 실험하는 대신 문서를 읽는 것입니다. 감사! –

4

luaposixstat 기능을 가지고 있습니다. 실행 권한 비트를 포함하는 mode 필드의 번호를 반환합니다 (파일 형식 만 제공하는 LuaFileSystem과 다릅니다.)

access도 현재 사용자의 사용 권한을 확인합니다.

+0

luaposix는 매우 유용합니다. 감사합니다! –

관련 문제