- [NEW] sys.dir() ara torna un array de entrades amb nom i si es directori
This commit is contained in:
17
lua.cpp
17
lua.cpp
@@ -720,13 +720,26 @@ extern "C" {
|
||||
}
|
||||
|
||||
static int cpp_sys_dir(lua_State *L) {
|
||||
std::string path = "./data";
|
||||
if (lua_gettop(L) > 0) path = luaL_checkstring(L, 1);
|
||||
|
||||
lua_newtable(L);
|
||||
int i=1;
|
||||
for (const auto& entry : fs::directory_iterator("./data")) {
|
||||
|
||||
for (const auto& entry : fs::directory_iterator(path)) {
|
||||
lua_newtable(L); // create subtable for this entry
|
||||
|
||||
// name field
|
||||
lua_pushstring(L, entry.path().u8string().c_str());
|
||||
lua_setfield(L, -2, "name");
|
||||
|
||||
// dir field (true if directory, false otherwise)
|
||||
lua_pushboolean(L, entry.is_directory());
|
||||
lua_setfield(L, -2, "dir");
|
||||
|
||||
// insert subtable into main table at index i
|
||||
lua_rawseti(L, -2, i++);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user