2012-05-23 21 views
10

Ho problemi ad ottenere la dimensione del file usando Lua. Sto creando un metodo di funzione che se la dimensione del file del file è 743 bytes, il file verrà eliminato.Come ottenere la dimensione del file ed eliminare il file in Lua?

Ecco il mio codice:

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 

Qualcuno mi può aiutare per il mio caso?

risposta

18

La dimensione è data da myFile:seek("end").

Per eliminare il file, utilizzare os.remove(path). Ma prima chiudi il file.

+0

grazie LHF per la risposta, provo a 'stampa (myFile : seek ("end")) 'ma sono un dio errore nella mia corona' Errore di runtime ... ne \ miei documenti \ idolo finale di canto game \ freeplay.lua: 258: tentativo di utilizzare un file chiuso stack traceback: [C]:? [C]: nella funzione 'cerca' ... ne \ miei documenti \ idolo finale di canto gioco \ freeplay.lua: 258: in funzione 'getDLFile' ... ne \ my d' – gadss

+1

@gadss, it sembra che tu stia chiudendo il file prima di cercare quando dovresti chiuderlo * dopo * cercare. – lhf

+0

vedi qui http://www.lua.org/pil/21.3.html – frgtv10

Problemi correlati