我如何使require()采取一个文件的直接路径

问题描述:

所以我有以下代码,问题是,当我循环遍历数组中的每个文件并尝试请求文件路径时,它会给我一个未找到模块的错误。我如何使require()采取一个文件的直接路径

local Commands = {} 

function getCommands() 
    local readdir = fs.readdir 
    local readdirRecursive = require('luvit-walk').readdirRecursive 
    readdirRecursive('./Desktop/Discord/ArtifexBot/Discordia/resources/commands/', function(k, files) 
     for i,v in pairs(files) do 
      if v:match(".lua") and not v:match("commands.lua") then 
       local cmd = v:match("([^/]-)%..-$") 
       fs.readlink(v,function(err,thing) 
        print(err,thing) 
       end) 
       Commands[cmd] = require(v) 
      end 
     end 
    end) 
end 
getCommands() 

递归函数起作用,文件只是路径的字符串。但是经过研究,require()需要相对路径,而不是直接路径。所以我想我需要用fs来做一些事情来让文件路径成为相对路径呢?我无法在任何地方找到答案。

谢谢!

require根本不需要路径。标准加载器只需使用您按照其算法给出的一系列模式中的字符串。

你想要的是加载和执行磁盘上给定的Lua脚本。这不是拼写require;这是拼写dofile