Antonio,
He creado un pequeño ejemplo a partir de testftp, utilizo esta función, desde XP, dice que está subiendo los archivos, luego desde FileZila FTP, accedo y no se ven los archivos. Si ejecuto el programa desde windows vista, si se ven los archivos.
//----------------------------------------------------------------------------//
static function SendFiles( aSource, aTarget, nBufSize, oSay1, oSay2,;
oMeter1, oSay3, oMeter2, lEnd, oDlg, oFTP )
local n
local hSource
local cBuffer := Space( nBufSize )
local nBytes, nFile := 0, nTotal := 0
local nTotSize := 0
local oFile
for n = 1 to Len( aSource )
CursorWait()
aSource[n]:=STRTRAN(aSource[n] , "\\" , "\" )
if ! File( aSource[ n ] )
MsgStop( "Fichero not existe: " + aSource[ n ] )
LOOP
// oDlg:End()
// exit
endif
hSource = FOpen( aSource[ n ] )
nTotSize += FSeek( hSource, 0, 2 )
FClose( hSource )
SysRefresh()
next
oMeter2:nTotal = nTotSize
for n = 1 to Len( aSource )
hSource = FOpen( aSource[ n ] )
oFile = TFtpFile():New( aTarget[ n ], oFTP )
oFile:OpenWrite()
oSay1:SetText( "Origen : " + aSource[ n ] )
oSay2:SetText( "Destino: " + aTarget[ n ] )
oMeter1:Set( 0 )
oMeter1:nTotal = FSeek( hSource, 0, 2 )
FSeek( hSource, 0, 0 )
nFile := 0
SysRefresh()
while ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0 .and. ! lEnd
oFile:Write( SubStr( cBuffer, 1, nBytes ) )
oSay3:SetText( "Bytes copiados: " + ;
AllTrim( Str( nTotal += nBytes ) ) )
oMeter1:Set( nFile += nBytes )
oMeter2:Set( nTotal )
SysRefresh()
end
FClose( hSource )
oFile:End()
if lEnd
exit
endif
next
return nil