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