原理是:使用命令提示符的’cd‘命令获取当前的路径,然后写入一个tmp文件(cd.tmp)中,用lua来读取这个文件,最后删除
function currDir()
os.execute("cd > cd.tmp")
local f = io.open("cd.tmp", r)
local cwd = f:read("*a")
f:close()
os.remove("cd.tmp")
return cwd
end
这个函数的缺点是,本身的字符串附带了换行符(即使看不见), 所以使用string.sub(s,i,j)来分隔一下,原理是:无论路径有多长,最后两个字符是'\n',所以只需用从最后一位算起,提取从-2到1位置的字符即刻,即:
string.sub(str, 1, -2)
这样,就可以随意的链接本路径下的文件件了:
function currDir()
os.execute("cd > cd.tmp")
local f = io.open("cd.tmp", r)
local cwd = f:read("*a")
f:close()
os.remove("cd.tmp")
return cwd
end
str = currDir()
print (string.sub(str, 1, -2) .. '\\aa.txt')