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:
00503057
Vues:
27
Thanks Nadya!


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