1
我正在研究Lua中的一個基本項目。我一直試圖從使用IO
API(定義爲here)的文件中獲取數據,但是當我打開一個文件並給它一個句柄時,它似乎沒有返回一個函數表。Lua沒有生成函數表(IO API)
代碼(的錯誤位):
local unread = fs.list("email/"..from.."/")
local send = ""
for _,file in ipairs(unread) do
local handle = io.open(file,"r")
local text = handle:read("*a")
send = send .. text .. "\n"
handle.close()
fs.delete(file)
end
您在第一行看到的fs
是一家專業的文件系統的包裝輪IO API,而不是我的工作,完美無差錯,所以這不是問題。但是,當我嘗試讀取文件(handle:read()
)時,它會引發「嘗試索引零」。跟蹤它,事實證明,handle
本身是nil
。有任何想法嗎?
嘗試'print(file)'查看它是否只是文件名或文件的整個路徑。 – hjpotter92
由於@ hjpotter92指出如果'file'是一個有效的路徑,那麼'handle'應該是非零,假設你有權限讀取文件。如果路徑不正確或不完整(例如,相對於'fs.list'調用中給出的路徑),那麼您需要修復'fs'庫或在嘗試打開文件之前構建正確的絕對或相對路徑。 –
@ hjpotter92喜歡這個想法,我會看看它。我認爲我有正確的道路,但是沒有意識到如果我錯了,它可能會把它搞砸。 – ArtOfCode