- [NEW] sys.dir() ara torna un array de entrades amb nom i si es directori

This commit is contained in:
2025-12-04 14:47:25 +01:00
parent 4858d94378
commit 7fac42c9fe
2 changed files with 23 additions and 3 deletions

17
lua.cpp
View File

@@ -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;
}