Utilizo la clase que viene con fivewin version 2.1a, todo bien excepto para archivos de mas de 500 KB, se cuelga al no poder ejecutar oFile:end() y tengo que cerrar la aplicacion con Ctrl+Alt+Supr.
El archivo es un .Zip de 800K y baja bien, esta sano y entero, pero el programa se cuelga.
Que podrá ser, gracias.
//--------------------------------------------------------------------
static func GetFiles( aSource, aTarget, nBufSize, oSay1, oSay2, oMeter1, oSay3, oMeter2, lEnd, oDlg, oFTP )
//--------------------------------------------------------------------
local n, hTarget, cBuffer := Space( nBufSize ), nBytes, nFile := 0, nTotal := 0, nTotSize := 0
local oFile, aFiles, aSizes := {}
for n = 1 to Len( aSource )
aFiles = oFTP:Directory( aSource[ n ] )
if Len( aFiles ) > 0
AAdd( aSizes, aFiles[ 1 ][ 2 ] )
nTotSize += ATail( aSizes )
else
AAdd( aSizes, 0 )
endif
SysRefresh()
next
nTotSize:=round(nTotSize,0)
oMeter2:nTotal = nTotSize
for n = 1 to Len( aSource )
hTarget = FCreate( aTarget[ n ] )
oFile = TFtpFile():New( aSource[ n ], oFTP )
oFile:OpenRead()
oSay1:SetText( "Origen: " + aSource[ n ] )
oSay2:SetText( "Destino: " + aTarget[ n ] )
oMeter1:Set( 0 )
oMeter1:nTotal = aSizes[ n ]
nFile := 0
SysRefresh()
do while (nBytes:=Len(cBuffer:=oFile:Read(nBufSize)))>0.and.!lEnd
FWrite( hTarget, cBuffer, nBytes )
oSay3:SetText( "Bytes copiados: " + AllTrim(Str(nTotal += nBytes)) )
oMeter1:Set( nFile += nBytes )
oMeter2:Set( nTotal )
SysRefresh()
enddo
commit
FClose( hTarget )
// ACA se cuelga el maldito
oFile:End()
next
return nil