Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Recursive function for directory read
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00502783
Message ID:
00502851
Views:
35
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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform