Use `os.walkDir` and an idea like: import std / [os, sets, sequtils] proc fileExt(dir: string; res: var Hashset[string]) = for k, f in walkDir(dir): if k == pcFile: res.incl splitFile(f).ext elif k == pcDir: fileExt(f, res) proc fileExt(dir: string): seq[string] = var res = initHashSet[string]() fileExt dir, res result = toSeq(res) Run
- A strange behavior in seq Tina
- A strange behavior in seq Araq