You may want to try axlDMFindFile which ignores the skillPath variable. For examle to find a file up 2 levels do
sprintf(buf "../../%s" ruleFile)
result = axlDMFindFile("MISC" buf "r")
if result is nil then file does not exist.
It is also best to use UNIX style directory delimiters ( "/") instead of Windows style ("\") since you don't need escape the UNIX version.
In general, getDirFiles should be avoided if performance will be an issue.