2012-05-23 8 views
10

Mam problem z uzyskaniem rozmiaru pliku za pomocą Lua. Tworzę metodę funkcji, która jeśli plik ma rozmiar pliku 743 bytes, wówczas plik zostanie usunięty.Jak uzyskać rozmiar pliku i usunąć plik w Lua?

Oto mój kod:

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 

Czy ktoś może mi pomóc o moim przypadku?

Odpowiedz

18

Rozmiar jest podawany przez myFile:seek("end").

Aby usunąć plik, użyj os.remove(path). Ale najpierw zamknij plik.

+0

dzięki LHF za odpowiedź, staram się 'print (myFile : seek ("end")) 'ale ja bóg ten błąd w mojej corona' Runtime error ... ne \ moje dokumenty \ śpiewająca gra finałowa idol \ freeplay.lua: 258: próba użycie zamkniętego pliku stos traceback: [C]:? [C]: w funkcji "szukaj" ... ne \ moje dokumenty \ śpiewająca finał idola \ freeplay.lua: 258: w funkcji 'getDLFile' ... ne \ my d' – gadss

+1

@gadss, it wydaje się, że zamykasz plik przed wyszukiwaniem, kiedy powinieneś go zamknąć * po * szukaniu. – lhf

+0

patrz tutaj http://www.lua.org/pil/21.3.html – frgtv10