如何在Lua中获取文件大小并删除文件?

时间:2012-05-23 02:15:00

标签: file lua size corona

我在使用Lua获取文件大小时遇到​​问题。我正在创建一个函数方法,如果文件的文件大小是743 bytes,那么该文件将被删除。

这是我的代码:

local getDLFile = function(fileToDL)
            local path = system.pathForFile(fileToDL, system.DocumentsDirectory )
            local myFile = io.open( path, "w+b" ) 
            http.request{ 
                url = "http://www.testfile.com/"..fileToDL, 
                sink = ltn12.sink.file(myFile),
            }

            -- i don't know what is the syntax
            if myFile.size == 743 bytes then
                 myFile.delete
            end             

end

任何人都可以帮我解决我的情况吗?

3 个答案:

答案 0 :(得分:22)

大小由myFile:seek("end")给出。

要删除文件,请使用os.remove(path)。但请先关闭文件。

答案 1 :(得分:8)

最近Lua文件系统支持被添加到Corona! 您可以使用

获取文件大小
local lfs = require "lfs"
local size = lfs.attributes (path, "size")

你可以在这里阅读 http://keplerproject.github.com/luafilesystem/manual.html#reference

要删除文件,请使用

os.remove(path)

答案 2 :(得分:0)

我很可能会错过一些确实很明显的东西,但是为什么不使用args[1](在函数外部)呢?它应该返回正在运行的文件的完整路径,包括文件名和.lua扩展名。