【发布时间】:2015-07-19 07:16:28
【问题描述】:
它总是返回一个字符串,它是(至少我猜)有人可以提供帮助的表标识符?
这就是我的功能:
function listFiles(dir)
local ffi = require("ffi")
ffi.cdef[[char ** PHYSFS_enumerateFiles ( const char * dir );]]
local liblove = ffi.os == "Windows" and ffi.load("love") or ffi.C
local tb={}
tb=liblove.PHYSFS_enumerateFiles(dir)
return tb
end
它应该返回一个字符串,其中包含我传递给它的“Dir”的文件内容,但它没有。不知道为什么。
【问题讨论】:
-
请注意:当您混合使用 and 和 or(在任何语言中)时,请考虑始终使用括号,以避免与运算符优先级相关的意外。
-
另外,调用这个函数时
dir的值是多少,这个目录的实际内容是什么?如果dir是相对路径,那么调用这个函数时当前工作目录是什么? -
我忘记将“dir”添加到搜索路径。这样做并将 char** 转换为 char* 再转换为 String,它会起作用,对吧?
-
我正在传递这个 C:/Users/Josué/Desktop/love/Texture Packs/ 它什么也没返回。它的内容是一个名为 default 的文件夹,里面有一堆 pngs。如果我尝试用 love 文件系统枚举它,它会返回一个表代码