luaのフォルダ内のすべてのファイルを連結して、1つのマスターログに多数のログをコンパイルして誰かに送信しようとしています。私はifsライブラリを使ってディレクトリ内のすべてのファイルを繰り返し処理し、それをすべて読み込んでマスターファイルに追加しようとしています。Luaファイルの連結
for name in lfs.dir("logs") do
if(name ~= "." and name ~= "..") then
local path = "logs/"..name
print (path)
local file=io.open(path,"R")
print "2"
local content = io.read("*all")
print "3"
io.close(file)
local f=io.open("log.csv","A")
file:write(content)
io.close(f)
end
end
2つの問題があります。 ifsライブラリは "。"を返します。と ".."の前に他のファイル名[これはif文よりも無視する方がいいでしょうか?] 私がここで見つけたビットを使って:How to load all files from a directory?
重要な問題は、私のコマンドプロンプトがファイルをテストします。それはパス(良いもの)を印刷し、それが "2"になる前にクラッシュして、私は理由が分からない。ファイルが存在し、別の関数でそのファイルに行を追加することでファイルを操作できます。
ご協力いただければ幸いです。 "."
をチェック回避し、".."
あなたは各項目がファイルまたはディレクトリ(あるいは何か他のもの)であるかどうかを確認するためにlfs.attributes
とそのmode
フィールドを使用する必要があります
を書くために
f:write
を使用します。グローバルファイルハンドルから読み取ります。開いていなかったグローバルファイルハンドル。 –ありがとう、それは完璧に動作します、io.readはクラッシュでした。 – Sambardo
また、 "R"対 "r"が異なって解釈され、+が "a +"のために追加するものは、私が以前に見たことがないので、興味があります。 – Sambardo