Конкатенация файлов Lua - PullRequest
       1

Конкатенация файлов Lua

1 голос
/ 01 августа 2011

Я пытаюсь объединить каждый файл в папке в lua, чтобы скомпилировать несколько журналов в один основной журнал и отправить его кому-нибудь. Я использую библиотеку ifs для перебора каждого файла в каталоге, затем читаю все это и пытаюсь добавить его в основной файл.

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 

Есть две проблемы. Библиотека ifs возвращает "." и ".." перед другими именами файлов [есть ли лучший способ игнорировать их, чем оператор if?] используя бит, который я нашел здесь: Как загрузить все файлы из каталога?

Важной проблемой является то, что моя командная строка продолжает сбой при тестировании файла. Он печатает путь (хороший), затем вылетает, прежде чем попасть в «2», и я не знаю почему. Файл существует, и я могу манипулировать им, добавляя в него строки в другой функции.

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 01 августа 2011

Чтобы не проверять "." и "..", вы должны использовать lfs.attributes и его поле mode, чтобы увидеть, является ли каждый элемент файлом или каталогом (или чем-то еще).io.read вы, вероятно, хотите file:read - это может быть причиной вашего "сбоя".

Я предлагаю вам использовать "r" и "a+" для аргументов режима io.open.

Да, и используйте f:write, чтобы написать content

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...