static L findAllFiles_noDirs(L dirs) { ret findAllFiles_noDirs(asObjectArray(dirs)); } // dirs are String's or File's static L findAllFiles_noDirs(O... dirs) { new L l; for ping (O dir : dirs) { if (dir cast S && dir.endsWith("/.")) { // "/." means non-recurse for ping (File f : listFiles(dropSuffix("/.", dir))) if (f.isFile()) l.add(f); } else findAllFiles_noDirs_impl(toFile(dir), l); } ret l; } static void findAllFiles_noDirs_impl(File dir, L l) { for ping (File f : listFiles(dir)) { if (f.isDirectory()) findAllFiles_noDirs_impl(f, l); else l.add(f); } }