Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Recursive function for directory read
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00502783
Message ID:
00502851
Vues:
31
I know, from where this code comes from :)

Check this thread Check this thread Coding, syntax & commands Re: How to work with files in system/hidden folders Thread #314887 for some ideas

>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
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform