LPARAMETERS INP lcFolder, INP llChild, INP lcAlias
LOCAL llNext,liRecno,lii,liCount
LOCAL ARRAY laFiles(1)
IF This.OpenFTPConnection() && Open an FTP Handle
=This.BeforeReadTree(lcFolder,llChild,lcAlias)
IF USED(lcAlias)
USE IN (lcAlias)
ENDIF
CREATE CURSOR (lcAlias) (FOLDER M, NAME M, ALTERNAME M, SIZE I, CD T, LAT T, LWT T, ATTRIB M)
llNext=IIF(!EMPTY(lcFolder),This.ChangeFTPDirectory(lcFolder),.T.)
liCount=0
llNext=llNext AND This.GetFTPDirectoryArray(@laFiles,"*.*",0,@liCount) && read all files and folders
IF liCount>0
FOR lii=1 TO ALEN(laFiles,1)
INSERT INTO (lcAlias) (FOLDER, NAME, ALTERNAME, SIZE, CD, LAT, LWT, ATTRIB);
VALUES;
(This.cCurrentDir,laFiles(lii,1),laFiles(lii,2),laFiles(lii,3),laFiles(lii,4),laFiles(lii,5),laFiles(lii,6),laFiles(lii,7))
NEXT
SELECT (lcAlias)
GO TOP
SCAN WHILE llNext AND llChild
IF NOT ATTRIB=="D"
LOOP
ENDIF
liRecno=RECNO()
llNext=This.ChangeFTPDirectory(FOLDER+"/"+NAME)
llNext=llNext AND This.GetFTPDirectoryArray(@laFiles,"*.*",0,@liCount) && read all files and folders
IF liCount>0
FOR lii=1 TO ALEN(laFiles,1)
INSERT INTO (lcAlias) (FOLDER, NAME, ALTERNAME, SIZE, CD, LAT, LWT, ATTRIB);
VALUES;
(This.cCurrentDir,laFiles(lii,1),laFiles(lii,2),laFiles(lii,3),laFiles(lii,4),laFiles(lii,5),laFiles(lii,6),laFiles(lii,7))
NEXT
ENDIF
SELECT (lcAlias)
GO (liRecno)
ENDSCAN
ENDIF
=This.AfterReadTree(lcFolder,llChild,lcAlias,llNext)
=IIF(This.lMultiOperations,.T.,This.CloseFTPConnection()) && Close FTP Handle
RETURN llNext
ENDIF
RETURN .F.