次の3つの機能があります。
function getName() -- returns filename without ext
local files = scandir(currentDir())
local name = nil
for i = 1, #files do
if isValidExt( getExt(files[i]) ) then
name = getFilename(files[i])
break
end
end
return name
end
function currentDir()
local string = debug.getinfo(1).source
local endPoint = getLastOcurrence(string, '/')
local dir = string.sub(string, 2, endPoint)
return dir
end
function getLastOcurrence(str, char)
local last = string.find(string.reverse(str), char, 1, true)
return #str - last
end
奇妙なことに、デバッグは問題なく終了しますが、実行中にエラーが発生します。
...\Downloader.lua:22: attempt to perform arithmetic on local 'last' (a nil value)
stack traceback:
...\Downloader.lua:22: in function 'getLastOcurrence'
...\Downloader.lua:39: in function 'currentDir'
...\Downloader.lua:50: in function 'getName'
デバッグと実行の間にこのような違いが生じる原因は何ですか?