Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
All files name into cursor
Message
 
 
To
12/10/2004 00:17:45
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00950598
Message ID:
00950602
Views:
18
>Dear Sir,
>
>How to put all files name into a cursor.
>For example, the is a directory as D:\COTTON
>I want to store all folders and files in a cursor.
>
>Please help
********************************************************************************
*  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 curFilesADIR ;
					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
Reply
Map
View

Click here to load this message in the networking platform