file - 如何使用 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
哪个电话:
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
最后调用:
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\\"
解决方案
您无需猜测可能出了什么问题;您只需要从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
错误消息将包含文件名,因此它应该明确地告诉您文件名、权限或其他内容是否存在问题。
推荐阅读
- deep-learning - PyTorch-lightning 模型在第一个 epoch 后内存不足
- numpy - Pytorch:Numpy 数组
- python - 如何在 Tensorflow 的期望时期改变对损失施加的权重?
- typescript - ESlint 在类中给出关于索引器签名的错误
- unity3d - 在 Unity 中,尽管删除了脚本,但当我创建另一个同名文件时,它说脚本是重复的
- github - Github API - 比较 2 个提交 - 大比较 - 无法获取所有更改的文件
- javascript - Javascript让双重声明
- python - Numpy element-wise 通过矩阵 B 中的值对矩阵 A 的每个值取幂
- python - 从整个 DataFrame 的字符串中删除尾随 .0
- javascript - D3 可缩放的 Sunburst 和 React 通过道具更新