Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Recursive function for directory read
Message
De
03/05/2001 12:45:27
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00502783
Message ID:
00503121
Vues:
30
>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
Just trying to help out when possible...
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform