>******************************************************************************** >* Description.......: GetAllFiles1 - builds list of all files in directory tree >* : uses Adir recursive call >* Calling Samples...: >* Parameter List....: tcStartDir, tcFileExt >* Created by........: David Frankenbach >* Modified by.......: >******************************************************************************** >* ADIR() method of recursively building the file list - Dave Frankenbach >lparameters tcStartDir, tcFileExt >* tcStartDir - top directory to start from >* tcFileExt - only files with this extension would be added to the list, >* leave blank for all file extensions > >* Both parameters should be character type, check it first >************************************************************************** >if empty(tcStartDir) or vartype(tcStartDir)'C' > tcStartDir='c:\' && Get list of files in the whole local drive >else > tcStartDir=addbs(tcStartDir) >endif >if empty(tcFileExt) or vartype(tcFileExt)'C' > tcFileExt='' >endif > >local ltStart >ltStart = datetime() >local lnTotNumberOfFiles > >create cursor curFilesADIR (cFilename c(100), nSize n(10), dMod d, Flag L) >=RecurseFolder(tcStartDir, tcFileExt) && Call recursive procedure >lnTotNumberOfFiles=reccount(curFilesAdir) >? datetime() - ltStart, lnTotNumberOfFiles > >index on upper(justfname(cFileName)) tag cFileName >browse nowait > >function RecurseFolder >lparameters lcDir, lcFileExt >local i , n, laFiles[1] > >n = adir(laFiles, lcDir + '*.*', "shd" ) > >for i = 1 to n > if ( left( laFiles[i,1], 1 ) != '.' ) > if ( "D" $ laFiles[i,5] ) > RecurseFolder( lcDir + laFiles[i,1] + "\" ) > else > if empty(lcFileExt) or justext(laFiles[i,1])==lcFileExt > llFlag=.f. > insert into filesADIR ; > values( lcDir + laFiles[i,1], laFiles[i,2], laFiles[i,3],llFlag ) > endif > endif > endif >endfor >return>