更新
Update the Linux version.
io.popen()
故事不紧接上文,今天通宵了,主要是在整原神tts说实话快猝死了,如图:
然后就又根据FileLib.lua写了个获取文件列表:
提取重要信息:
-作用:获取文件夹下的一级文件及文件夹table
--参数: path——>遍历文件的路径
getFileList=function(path)
local a = io.popen("dir "..path.."/");
local fileTable = {};
if a==nil then
else
for l in a:lines() do
table.insert(fileTable,l)
end
end
return fileTable;
end;
再看看本帖的脚本:
提取重要信息:
getDiceList = function(msg)
local path = string.sub(msg.fromMsg,#'--getDiceList='+1)
local Dir = path
if path == 'nil' then Dir = nil end
if Dir then
cmd = 'dir '.. getDiceDir()..'\\'..path..' /b >'..getDiceDir()..'//DiceList.txt'
os.execute(cmd)
else
cmd = 'dir '.. getDiceDir()..' /b >'..getDiceDir()..'//DiceList.txt'
os.execute(cmd)
end
return read_file(getDiceDir()..'//DiceList.txt','r','*a')..os.date('\n%x')..'\n文件夹与文件共 '..getLineCount(getDiceDir()..'//DiceList.txt')..' 个'
end
二者对比,
我快被蠢到了
我快被蠢到了
我快被蠢到了
我快被蠢到了
为了计算文件个数我还真搞了个计算文件行数:
getLineCount = function(path)
local BUFSIZE = 2^13
local f = io.input(path)
local lc = 0
while true do
local lines,rest = f:read(BUFSIZE,'*line')
if not lines then break end
if rest then lines = lines .. rest .. '\n' end
local _,t = string.gsub(lines,"%S+","")
_,t = string.gsub(lines,"\n","\n")
lc = lc + t
end
return lc
end
但是,重点是,用今天熬夜的代码,只需要一步就可以了,也就是 #table
我真的会谢,望大佬不要喷我这个帖子的脚本写的太烂orz