FTP si Funciona con Vista y no con XP

FTP si Funciona con Vista y no con XP

Postby jnavas » Wed Oct 01, 2008 8:24 am

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
User avatar
jnavas
 
Posts: 472
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: FTP si Funciona con Vista y no con XP

Postby jnavas » Wed Oct 01, 2008 4:29 pm

Antonio,

Disculpe la insistencia, tengo presion por parte de clientes, deseo saber si vas a revisar esto en alguna fecha o algunos tips? para seguir investigando.


jnavas wrote: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
User avatar
jnavas
 
Posts: 472
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: FTP si Funciona con Vista y no con XP

Postby jnavas » Thu Oct 02, 2008 3:21 am

Antonio,
Fe de errata, no es testftp,
es icopyfill

Ya descubrí, lo que sucede.
Mi pc de desarrollo tiene linux ubuntu como arranque y dentro de el, tengo maquinas virtuales con Windows.

Lo probé desde otro PC con XP y funciona Ok.
Hay que anotarlo en los libros de la experiencia.

jnavas wrote:Antonio,

Disculpe la insistencia, tengo presion por parte de clientes, deseo saber si vas a revisar esto en alguna fecha o algunos tips? para seguir investigando.


jnavas wrote: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
User avatar
jnavas
 
Posts: 472
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 96 guests