Размер файла

Опубликовано в QLua

 

-- Получение размера файла
-- Параметр - имя файла или дескриптор файла
-- Возвращает длину файла или nil и диагностику вторым параметром
function io.filesize(file)
   local size

   if type(file) == "string" then
      local f,err = io.open(file,"r")
      if not f then return nil,err end
      size = io.filesize(f)
      f:close()
   else
      local current_position = file:seek()
      size = file:seek("end")
      file:seek("set",current_position)
   end
   return size
end

Комментарии   

# admin 13.05.2013 21:32
Можно также проверить тип дескриптора, если передан именно он

type(file)

Тип в этом случае может быть как "file" так и "closed file"

Но я не стал - это решается на уровне логики вызывающей программы

Недостаточно прав для комментирования

Архив QLua