Information générale
Catégorie:
Codage, syntaxe et commandes
>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
Précédent
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement