static void Jimmy_FindFilesWinAPI(Args _args) { #File int i; FileName fullFileName(FileName _path, FileName _fileName) { FileName pathName; FileName fileName; FileName fileExtension; ; [pathName,fileName,fileExtension] = fileNameSplit(_fileName); return _path + '\\' + fileName + fileExtension; } void findFiles( FileName _path, FileName _fileName, boolean _inclSubDir = true, FileName _prefix = fullFileName(_path,_fileName)) { FileName fileName,FullName; int hdl; ; setprefix(_prefix); if (WinAPI::folderExists(_path)) { [hdl,fileName] = WinApi::findFirstFile(fullFileName(_path,_fileName)); while (fileName) { FullName = fullFileName(_path,fileName); if (WinAPI::fileExists(FullName)) { i++; info(strfmt("%3 , %1 - %2",FullName,fileName,i)); } fileName = WinApi::findNextFile(hdl); } WinApi::findClose(hdl); if (_inclSubDir) { [hdl, fileName] = WinAPI::findFirstFile(_path+'\\'+#AllFiles); while (fileName) { if (strlwr(fileName) != strlwr(_fileName) && strlwr(fileName) != strlwr('.') && strlwr(fileName) != strlwr('..') && WinAPI::pathExists(fullFileName(_path,fileName))) findFiles(fullFileName(_path,fileName), _fileName, _inclSubDir, fileName); fileName = WinApi::findNextFile(hdl); } WinApi::findClose(hdl); } } } ; findFiles('c:\\Program Files','*.doc'); }