雖然lfs足夠強大,但部分情況還是不能很好的適應,以下方法基本上都是以shell cmd的形式去執行,從而實現路徑和檔案操作的各種需要。
其實lfs和這裡的方法結合起來,才是最後的
filelib =
local new_path=""
-- 分割路徑儲存到table
for s in string.gmatch(path,"([^'/']+)") do
if s~=nil then
table.insert(path_tb,s)
endend
-- 遍歷並拼接路徑檢測是否存在,不存在則新建
for k,v in ipairs(path_tb) do
if k==1 then
new_path=v
else
new_path=new_path.."/"..v
endif os.execute("cd "..new_path) then
else
os.execute("mkdir "..new_path)
endend
end;
--作用:清楚資料夾下所有檔案,連帶刪除資料夾
rmdeeppath=function(folderpath)
os.execute("rm -rf "..folderpath)
end;
--作用:刪除空資料夾/檔案
remove=function(folderpath)
os.remove(filelib.explainuser(folderpath))
end;
--作用:獲取某個資料夾下所有的檔案
getallfileinfolder=function(folderpath,backuppath)
local file_tb={}
local filelist={};
local newpath=""
local f=io.open(backuppath.."/file.txt",'a')
filelist=filelib.getfilelist(folderpath)
for i= 1, #filelist do
if string.find(filelist[i],"%.")==nil then
newpath=folderpath.."/"..filelist[i];
filelib.getallfileinfolder(newpath,backuppath)
else
f:write(folderpath.."/"..filelist[i].."\n")
endend
f:close();
end;
--作用:獲取資料夾下的一級檔案及資料夾table
lspath=function(path)
if filelib.ispathexist(path) then
local a = io.popen("ls "..path.."/");
local filetable = {};
if a==nil then
else
for eachfile in a:lines() do
table.insert(filetable,eachfile)
endend
return filetable
endreturn nil
end;
--作用:判斷檔案是否存在
ispathexist=function(path)
local f=io.open(filelib.explainuser(path),"r")
return f~=nil and f:close();
end;
--是否為資料夾
isfolderexist=function(path)
os.execute("cd "..path)
end}local ft = filelib.isfolderexist("~/tmp/a.py")
if ft == nil then
print("path do not exist")
else
for i, v in ipairs(ft) do
print(v)
endend
lua路徑問題
方法1 lua進行require絕對路徑時,會從package.path中進行遍歷 print package.path 會得到類似下面的結果 lualibs p4ulibs lua lualibs lua lualibs lua lualibs init.lua 故我們可以通過對package.p...
lua 指定require路徑
在自己的lua檔案中,如果使用到了自己寫的c庫或者第三方庫,想讓lua編譯到自己指定的目錄下尋找.lua或。so檔案的時候,可以再自己的lua 中新增如下 可以指定require搜尋的路徑。package.path usr local share lua 5.1 lua home resty lua...
Lua操作棧c呼叫lua
include stdafx.h int main 得到初始化棧大小 printf 初始化棧大小 d n lua gettop plua 開啟所有功能庫 lual openlibs plua 載入指令碼 lual dofile plua,test.lua 將指令碼中的add函式入棧 int ret ...