Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Recursive function for directory read
Message
 
À
02/05/2001 17:34:12
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00502783
Message ID:
00502793
Vues:
30
Beautiful, thanks Tony!!

>>Has anyone written or know where to find a function to capture folder and file details? I don't think there's a need to reinvent the wheel...
>>
>>Thanks!!!
>
>
>Gil,
> Below is the code I have:
>
>
>**/ Recursive code for dirs
>
>********************************************************************************
>* 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
For every bug fixed, there is a bigger bug not yet discovered.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform