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