lua創建文件夾
① LUA怎麼像C語言一樣編譯生成可執行文件
下載源代碼,解壓。
解壓後,包含文件:
1、doc 文件夾,lua的更新說明,網頁格式
2、src 文件夾,lua的源文件,C語言實現
3、Makefile , 編譯用配置文件,我們這里就不用它了
4、README , 不用我說了吧,就一說明文件,我們也用不著
進入src文件夾,新建一個文本文件。並改名為vslua.bat,提示是否更改後綴名,選擇是並點擊。
右鍵我們建立的vslua.bat文件,以記事本打開
編寫如圖代碼,為了鍛煉大家的動手能力,加深理解,我就直接上圖不打文字。反正一定能看清的。記得編寫後保存哦!
到開始菜單選擇vs的開發人員命令提示工具。
在命令工具中輸入:
1、「cd x:\你的src文件夾路徑\src」[不包含引號],回車
2、「vslua.bat」 回車
等待執行結束。如果不錯的話,你到src上級目錄就能發現新生成了一個bin文件夾。文件夾裡面放的就是生成好的exe、lib、dll。
最後測試一下新生成的lua.exe。
② 如何在Windows平台使用VS搭建C++/Lua的開發環境
環境
Windows 8.1
VS2012
Lua5.2.3
如何搭建
1.生成Lua靜態庫
(1)下載lua src。
最新版本是5.2.3。下載地址。
(2)新建VS Win32控制台應用程序,取名為Lua。在應用程序設置中選擇應用程序類型為靜態庫,附加選項中取消預編譯頭的勾選。
③ Lua常用的文件操作
一、基本的文件讀寫
(1) io.open
功能:按指定的模式打開一個文件,成功則返迴文件句柄,失敗則返回nil+錯誤信息
file = io.open (filename [, mode])
mode 的值有:
r 以只讀方式打開文件,該文件必須存在。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
r+ 以可讀寫方式打開文件,該文件必須存在。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a+ 與a類似,但此文件可讀可寫
b 二進制模式,如果文件是二進制文件,可以加上b
+ 號表示對文件既可以讀也可以寫
(2) file:write(...)
功能:按指定的參數格式輸出文件內容,參數必須為字元或數字,若要輸出其它值,則需通過tostring或string.format進行轉換
(3) file:close()
功能:關閉文件,我抽U盤才懶得'安全刪除硬體',一般都直接拔了.這個命令也一樣,反正lua有垃圾自動回收........
(4) io.lines ([filename])
功能:打開指定的文件filename為讀模式並返回一個迭代函數,每次調用將獲得文件中的一行內容,當到文件尾時,將返回nil,並自動關閉文件
(5) io.popen ([prog [, mode]])
功能:開始程序prog於額外的進程,並返回用於prog的文件句柄(並不支持所有的系統平台)
二、常用文件操作
(1)判斷文件是否存在
function checkFileExist(path)
local file = io.open(path, "rb")
if file then file:close() end
return file ~= nil
end
(2)判斷文件夾是否存在()
os.execute("cd "..dirPath)
返回值為0便是存在,不為0時表示不存在
(3)創建文件夾
os.execute("mkdir "..dirPath)
(4)刪除文件
os.remove(filepath)
eg:創建多層文件夾
Configs.debugFilePath = "E:/test1/test2/test3/test4/test.txt"
function checkDirExist()
local dirlist = string.split(Configs.debugFilePath,"/")
local filenamelen = string.len(dirlist[#dirlist])
local dirpath = string.sub(Configs.debugFilePath,1,string.len(Configs.debugFilePath)-filenamelen-1)
local path_tb={}
local new_path=""
-- 分割路徑保存到table
for s in string.gmatch(dirpath,"([^'/']+)") do
if s~=nil then
table.insert(path_tb,s)
end
end
-- 遍歷並拼接路徑檢測是否存在,不存在則新建
for k,v in ipairs(path_tb) do
if k==1 then
new_path=v
else
new_path=new_path.."\\"..v
end
if os.execute("cd "..new_path) ~= 0 then
os.execute("mkdir "..new_path)
end
end
end
(5)獲得文件夾下的所有文件路徑(windows)
io.popen("dir path /b /s")
eg:
local dirinfo= io.popen("dir path /b /s")
local all = dirinfo:read("*all")
④ lua 創建文件和文件夾
--創建名字為123的文件夾
os.execute("md 123")
--創建名字為123.txt 內容為456的文件
local file = io.open("123.txt","w")
file:write("456")
file:close()