>>******************************************************************************** >>* 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