A Directory Iterator [dúvida]

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

A Directory Iterator [dúvida]

Denis Dos Santos Silva
o código original retorna algo assim:
{
'arquivo1.x',
'arquivo2.y',
{...}
}

quais alterações precisaria para retornar algo assim:
{

{'nome do arquivo1', 'data', 'hora', tamanho'},
{'nome do arquivo2', 'data', 'hora', tamanho'},
{...},

}


/// original: http://www.lua.org/pil/29.1.html
    #include <dirent.h>
    #include <errno.h>

/*
  {...}
*/
    
    static int l_dir (lua_State *L) {
      DIR *dir;
      struct dirent *entry;
      int i;
      const char *path = luaL_checkstring(L, 1);
    
      /* open directory */
      dir = opendir(path);
      if (dir == NULL) {  /* error opening the directory? */
        lua_pushnil(L);  /* return nil and ... */
        lua_pushstring(L, strerror(errno));  /* error message */
        return 2;  /* number of results */
      }
    
      /* create result table */
      lua_newtable(L);
      i = 1;
      while ((entry = readdir(dir)) != NULL) {
        lua_pushnumber(L, i++);  /* push key */
        lua_pushstring(L, entry->d_name);  /* push value */

/*
(meramente exemplificativo)
        bytes = arquivo_tamanho(); // 100 (int)
        data = arquivo_data();     // "2015-11-11"
        hora = arquivo_hora();     // "00:00:00"
        atributos = arquivo_atributos(); // A=arquivo ou D=diretorio
*/

        lua_settable(L, -3);
      }
    
      closedir(dir);
      return 1;  /* table is already on top */
    }
// EOF



--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em http://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.