如何使用Lua导入文件夹

我在编写脚本时遇到了一个问题,我正在尝试在脚本运行时加载文件,但我收到了一个错误消息,说找不到我给出的文件名对应的文件。

这是我加入加载文件条件的代码:

function checkAll()
    if (global:getCountFight() >= (LAST_NB_FIGHT+MAX_FIGHT)) then
        LAST_NB_FIGHT = global:getCountfight()
        printMsg("Déconnecte le personnage pendant "..SLEEP_TIME.." heure(s)")
        global:reconnect(SLEEP_TIME)
    elseif (character:level()<8) then
        goHomeAndLoadTrajet("[Combat] Bouftous")
        setMinMonsters(1)
        setMaxMonsters(8)
        setForceMonsters({})
        SLEEP_LVL = 50
        SLEEP_TIME = 6

这是goHomeAndLoadTrajet函数的代码:

function goHomeAndLoadTrajet(trajetName)
    trajetName = checkTrajetName(trajetName)
    if trajetName ~= u_NEXT_TRAJET and trajetName ~= LAST_TRAJET then
        u_NEXT_TRAJET = trajetName
        goHome()
    end
end

它调用了checkTrajetName函数:

function checkTrajetName(trajetName)
    if (file_exists(INCLUDES_PATH..trajetName)) then
        return trajetName
    elseif (file_exists(INCLUDES_PATH..trajetName..".lua")) then
        return trajetName..".lua"
    else
        printMsg("Le trajet '"..trajetName.."' n'existe pas !", "ERREUR")
        return
    end

最终调用了file_exists函数:

function file_exists(name)
   local f=io.open(name,"r")
   if f~=nil then io.close(f) return true else return false end
end

现在我有些困惑了...谢谢:)

编辑:INCLUDES_PATH是一个变量,它包含我的路径,

INCLUDES_PATH = "C:\\Program Files (x86)\\SnowbotTouch\\Scripts Lua\\Trajets\\includes\\"

点赞
用户1442917
用户1442917

你不需要猜测可能出了什么问题,你只需要输出 io.open 调用的错误信息:

function file_exists(name)
   local f, err =io.open(name,"r")
   if f~=nil then
     io.close(f)
   else
     print(err)
   end
   return f~=nil
end

错误信息将包含文件名,因此它应该能够清楚地告诉你文件名、权限或其他方面是否存在问题。

2020-04-08 17:51:34