hmJSかhmV8使って、

#DLL = loaddll( hidemarudir + @"\hmJS.dll" );

#r = dllfuncw( #DLL, "DoString", R"JS(

var filename2 = hm.Macro.Var("filename2");
var dirctory = clr.System.IO.Path.GetDirectoryName( filename2 );
var files = clr.System.IO.Directory.GetFiles(dirctory, "*", clr.System.IO.SearchOption.AllDirectories);
var files_count = files.Length

hm.Macro.Var("#files_count", files_count);

// console.log(files_count);

)JS"
);

##cnt = 0;

while( ##cnt < #files_count ) {
$files[##cnt] = dllfuncstrw( #DLL, "GetStrItemOfList", "files", ##cnt );
##cnt = ##cnt + 1;
}

freedll(#DLL);



とかが一番楽で自然かと。
// $files[##cnt] にサブディレクトリまで含めたファイル一覧が入っている。