Theotokos Posted November 16, 2023 Report Share Posted November 16, 2023 Fiz uma rotina simples para fazer o download de um arquivo, porem se este arquivo estiver na raiz abaixa certinho... mas se esta dentro de uma pasta ai da problema... baixa o arquivo, porem o conteúdo dele fica assim: 550 SYSRLI.RLI: N; ao invés do conteúdo certo... estou fazendo assim: oUrl := tUrl():New( cUrl ) oFTP := tIPClientFtp():New( oUrl, .f. ) oFTP:nConnTimeout := 20000 oFTP:bUsePasv := .T. IF At( "@", cUser ) > 0 oFTP:oUrl:cServer := cServer oFTP:oUrl:cUserID := cUser oFTP:oUrl:cPassword := cPassword ENDIF lOpen := .f. * MsgRun( "Abrindo FTP", "FTP", {|| lOpen := oFTP:Open( cUrl ) }) IF lOpen cPastaServ := "Clientes/"+AllTrim(cCliFTP) file := 'SYSRLI.RLI' // Arquivo a ser Baixado oFtp:cwd( cPastaServ ) // Pasta onde esta o Arquivo oFTP:cReply() lRetorno := oFtp:DownloadFile( cFile ) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 21, 2023 Report Share Posted November 21, 2023 Tente assim. Troque os dados da emagsoftware pelos seus. #include "Fivewin.ch" FUNCTION Main() LOCAL cUrl := "ftp://myuser@aruba.it:mypassword@ftp.emagsoftware.it" LOCAL oUrl := TUrl():New( cUrl ) LOCAL oFtp := TIpClientFtp():New( oUrl, .T. ) oFtp:Open( cUrl ) ? oFtp:CWD( "/emagsoftware.it" ) ? oFtp:DownloadFile( "email.gif" ) oFtp:Close() RETURN NIL Regards, saludos. Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted November 21, 2023 Report Share Posted November 21, 2023 Aparentemente o erro é cusado por falta do segundo parâmetro oFtp:DownloadFile( cFile ), como o arquivo está em uma pasta diferente ao criar localmente gera o problema. Tente assim: lRetorno := oFtp:DownloadFile( "nomefile.zip",cfile) //downloadFile( <cLocalFile>, [<cRemoteFile>] ) --> lSuccess vê se resolve! Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 21, 2023 Author Report Share Posted November 21, 2023 39 minutos atrás, Jmsilva disse: Aparentemente o erro é cusado por falta do segundo parâmetro oFtp:DownloadFile( cFile ), como o arquivo está em uma pasta diferente ao criar localmente gera o problema. Tente assim: lRetorno := oFtp:DownloadFile( "nomefile.zip",cfile) //downloadFile( <cLocalFile>, [<cRemoteFile>] ) --> lSuccess vê se resolve! lRetorno := oFtp:DownloadFile( "teste.txt", cFile ) fiz assim, mas continua mesma coisa, só mudou o nome do arquivo, que no FTP é SYSRLI.RLI baixou teste.txt Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 21, 2023 Author Report Share Posted November 21, 2023 1 hora atrás, kapiaba disse: Tente assim. Troque os dados da emagsoftware pelos seus. #include "Fivewin.ch" FUNCTION Main() LOCAL cUrl := "ftp://myuser@aruba.it:mypassword@ftp.emagsoftware.it" LOCAL oUrl := TUrl():New( cUrl ) LOCAL oFtp := TIpClientFtp():New( oUrl, .T. ) oFtp:Open( cUrl ) ? oFtp:CWD( "/emagsoftware.it" ) ? oFtp:DownloadFile( "email.gif" ) oFtp:Close() RETURN NIL Regards, saludos. tmb nao deu! Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted November 21, 2023 Report Share Posted November 21, 2023 Qual o conteúdo desta variável cPastaServ? Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 21, 2023 Author Report Share Posted November 21, 2023 18 minutos atrás, Jmsilva disse: Qual o conteúdo desta variável cPastaServ? "/Clientes/Borges/" Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted November 21, 2023 Report Share Posted November 21, 2023 43 minutos atrás, Theotokos disse: "/Clientes/Borges/" Substitua oFtp:cwd( cPastaServ ) conforme abaixo, atentar para case sensitive. oFtp:cwd( "Clientes" ) // Pasta onde esta o Arquivo oFtp:cwd( "Borges" ) // Pasta onde esta o Arquivo Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 21, 2023 Author Report Share Posted November 21, 2023 4 minutos atrás, Jmsilva disse: Substitua oFtp:cwd( cPastaServ ) conforme abaixo, atentar para case sensitive. oFtp:cwd( "Clientes" ) // Pasta onde esta o Arquivo oFtp:cwd( "Borges" ) // Pasta onde esta o Arquivo Vlw, mas tentei isso já... Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 22, 2023 Author Report Share Posted November 22, 2023 estranho isso... porque na raiz do FTP ele baixa certinho, porem nas pastas não... e os comandos oFtp:cwd( cPastaServ ) retorna .T., ou seja ele conseguiu executar, e depois uso o comando oFtp:cReply() que retorna sucesso.... então entendo que estou na pasta que desejo baixar o arquivo... Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 22, 2023 Report Share Posted November 22, 2023 https://fivetechsupport.com/forums/viewtopic.php?f=3&t=41759&start=0 https://forums.fivetechsupport.com/viewtopic.php?f=3&t=40326 Regards, saludos. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 22, 2023 Author Report Share Posted November 22, 2023 *oFtp:cwd( cPastaServ ) ESTE COMANDO NAO FUNCIONA *oFTP:cReply() COLOQUEI ASSIM, DIRETO oFtp:DownloadFile( "pasta\arquivo_a_gravar", "pasta/arquivo_a_ser_baixado" ) MsgRun( "AGUARDE A LIBERAÇÃO SYSRli" + CRLF + cPastaServ + CRLF + cFile, ; "Download", {|| lRetorno := oFtp:DownloadFile( "ArqSYS\"+cFile, cPastaServ+cFile )} ) ASSIM FUNCIONOU Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 22, 2023 Author Report Share Posted November 22, 2023 Essa Rotina aqui, consegui tmb, e mais rapido // // File attributes // #define FILE_ATTRIBUTE_READONLY 1 #define FILE_ATTRIBUTE_HIDDEN 2 #define FILE_ATTRIBUTE_SYSTEM 4 #define FILE_ATTRIBUTE_DIRECTORY 16 #define FILE_ATTRIBUTE_ARCHIVE 32 #define FILE_ATTRIBUTE_NORMAL 128 #define FILE_ATTRIBUTE_TEMPORARY 256 // // access types for InternetOpen() // #define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration #define INTERNET_OPEN_TYPE_DIRECT 1 // direct to net #define INTERNET_OPEN_TYPE_PROXY 3 // via named proxy #define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 // prevent using java/script/INS // // manifests // #define INTERNET_INVALID_PORT_NUMBER 0 // use the protocol-specific default #define INTERNET_DEFAULT_FTP_PORT 21 // default for FTP servers #define INTERNET_DEFAULT_GOPHER_PORT 70 // " " gopher " #define INTERNET_DEFAULT_HTTP_PORT 80 // " " HTTP " #define INTERNET_DEFAULT_HTTPS_PORT 443 // " " HTTPS " #define INTERNET_DEFAULT_SOCKS_PORT 1080 // default for SOCKS firewall servers. // // service types for InternetConnect() // #define INTERNET_SERVICE_FTP 1 #define INTERNET_SERVICE_GOPHER 2 #define INTERNET_SERVICE_HTTP 3 #define INTERNET_FLAG_PASSIVE 134217728 // // flags for FTP // #define INTERNET_FLAG_TRANSFER_ASCII 1 #define INTERNET_FLAG_TRANSFER_BINARY 2 //------------------------------------------------------------------- FUNCTION MandaFTP(host, usuario, senha, pastaServ, arquivo, pastaLocal, oquefazer ) LOCAL hInternet, hConnect Local afiles hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 ) hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ) if oquefazer = "pega" if ! FTPGETFILE( hConnect, pastaServ+arquivo, pastaLocal+arquivo, 0, FILE_ATTRIBUTE_ARCHIVE, 0, 0 ) msgStop("Erro ao receber arquivo "+pastaServ+arquivo,"Atenção!") end else if FTPPUTFILE( hConnect, pastaLocal+arquivo, pastaServ+arquivo, 0, 0 ) msginfo("Arquivo enviado.","Sucesso!") else msgalert("Falha no envio do arquivo"+CRLF+; "Verifique conexão com a internet e firewall.","Problemas.") end end INTERNETCLOSEHANDLE( hConnect ) INTERNETCLOSEHANDLE( hInternet ) RETURN NIL //============================================================================================== /* FUNCTION MandaImg(host, usuario, senha, pasta, aJPG, dir, oquefazer, QuemChamou) LOCAL hInternet, hConnect local hFTPDir, aFiles := {} local oWin32FindData, cBuffer Local aonde, arquivo STRUCT oWin32FindData MEMBER nFileAttributes AS DWORD MEMBER nCreationTime AS STRING LEN 8 MEMBER nLastReadAccess AS STRING LEN 8 MEMBER nLastWriteAccess AS STRING LEN 8 MEMBER nSizeHight AS DWORD MEMBER nSizeLow AS DWORD MEMBER nReserved0 AS DWORD MEMBER nReserved1 AS DWORD MEMBER cFileName AS STRING LEN 260 MEMBER cAltName AS STRING LEN 14 ENDSTRUCT hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 ) hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ) if oquefazer = "vesetem" cBuffer = oWin32FindData:cBuffer hFTPDir = FtpFindFirstFile( hConnect, "*.*", @cBuffer, 0, 0 ) oWin32FindData:cBuffer = cBuffer if ! Empty( oWin32FindData:cFileName ) aadd( aFiles, { oWin32FindData:cFileName,; oWin32FindData:nSizeLow } ) while InternetFindNextFile( hFTPDir, @cBuffer ) oWin32FindData:cBuffer = cBuffer aadd( aFiles, { oWin32FindData:cFileName,; oWin32FindData:nSizeLow } ) end endif if len(afiles)>0 for i=1 to len(aJPG) aonde := ascan(afiles,aJpg) if aonde > 0 adel(aJPG,aonde) //fica na matriz somente o que vai ser enviado end next else msgAlert("Erro ao carregar Dir Remoto."+CRLF+"Conexão falhou."+CRLF+"Gere o relatório novamente.","Atenção:") end else aJPg := {} end if len(aJPG)>0 for i=1 to len(aJPG) arquivo := aJPG if FTPPUTFILE( hConnect, dir+arquivo, pasta+arquivo, 0, 0 ) if QuemChamou = "WT5f0A" msginfo("Arquivo enviado.","Sucesso!") end // crio log da transacao SumLog(arquivo, "Enviado por ","FTP ") else msgalert("Falha no envio do arquivo"+CRLF+; "dir+arquivo: "+dir+arquivo + CRLF+; "pasta+arquivo: "+pasta+arquivo+CRLF+; "Verifique conexão com a internet e firewall.","Problemas.") SumLog(arquivo, "Falhou ao enviar ","FTP ") end next end INTERNETCLOSEHANDLE( hConnect ) INTERNETCLOSEHANDLE( hInternet ) RETURN NIL */ //================================================================================================ #pragma BEGINDUMP #include "windows.h" #include "wininet.h" #include "hbapi.h" HB_FUNC( INTERNETOPEN ) { hb_retnl( ( LONG ) InternetOpen( hb_parc( 1 ), hb_parnl( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parnl( 5 ) ) ); } HB_FUNC( INTERNETCLOSEHANDLE ) { hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) ); } HB_FUNC( INTERNETCONNECT ) { hb_retnl( ( LONG ) InternetConnect( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( INTERNET_PORT ) hb_parnl( 3 ), hb_parc( 4 ), hb_parc( 5 ), hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) ) ); } HB_FUNC( FTPGETFILE ) { hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) ); } HB_FUNC( FTPPUTFILE ) { hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) ); } HB_FUNC( FTPDELETEFILE ) { hb_retl( FtpDeleteFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } HB_FUNC( FTPCREATEDIRECTORY ) { hb_retl( FtpCreateDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } HB_FUNC( FTPREMOVEDIRECTORY ) { hb_retl( FtpRemoveDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } HB_FUNC( FTPFINDFIRSTFILE ) { hb_retnl( ( LONG ) FtpFindFirstFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( WIN32_FIND_DATA * ) hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) ); } HB_FUNC( INTERNETFINDNEXTFILE ) { hb_retl( InternetFindNextFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } #pragma ENDDUMP SÓ A FUNÇÃO MANDAIMG() QUE NAO FUNCIONOU, MAS NO MOMENTO NÃO VOU USAR... DÁ ERRO NA ROTINA A BAIXO STRUCT oWin32FindData MEMBER nFileAttributes AS DWORD MEMBER nCreationTime AS STRING LEN 8 MEMBER nLastReadAccess AS STRING LEN 8 MEMBER nLastWriteAccess AS STRING LEN 8 MEMBER nSizeHight AS DWORD MEMBER nSizeLow AS DWORD MEMBER nReserved0 AS DWORD MEMBER nReserved1 AS DWORD MEMBER cFileName AS STRING LEN 260 MEMBER cAltName AS STRING LEN 14 ENDSTRUCT Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 22, 2023 Report Share Posted November 22, 2023 coloque o CODE/CODE para identar o fonte. assim fica horrível para ler. abs. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 22, 2023 Author Report Share Posted November 22, 2023 50 minutos atrás, kapiaba disse: coloque o CODE/CODE para identar o fonte. assim fica horrível para ler. abs. tentei mas não esta funcionando, ao clicar parece msg "erro ao carregar..." Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 22, 2023 Report Share Posted November 22, 2023 meu .PRG aqui Não funciona? Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 22, 2023 Author Report Share Posted November 22, 2023 2 minutos atrás, kapiaba disse: // // File attributes // #define FILE_ATTRIBUTE_READONLY 1 #define FILE_ATTRIBUTE_HIDDEN 2 #define FILE_ATTRIBUTE_SYSTEM 4 #define FILE_ATTRIBUTE_DIRECTORY 16 #define FILE_ATTRIBUTE_ARCHIVE 32 #define FILE_ATTRIBUTE_NORMAL 128 #define FILE_ATTRIBUTE_TEMPORARY 256 // // access types for InternetOpen() // #define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration #define INTERNET_OPEN_TYPE_DIRECT 1 // direct to net #define INTERNET_OPEN_TYPE_PROXY 3 // via named proxy #define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 // prevent using java/script/INS // // manifests // #define INTERNET_INVALID_PORT_NUMBER 0 // use the protocol-specific default #define INTERNET_DEFAULT_FTP_PORT 21 // default for FTP servers #define INTERNET_DEFAULT_GOPHER_PORT 70 // " " gopher " #define INTERNET_DEFAULT_HTTP_PORT 80 // " " HTTP " #define INTERNET_DEFAULT_HTTPS_PORT 443 // " " HTTPS " #define INTERNET_DEFAULT_SOCKS_PORT 1080 // default for SOCKS firewall servers. // // service types for InternetConnect() // #define INTERNET_SERVICE_FTP 1 #define INTERNET_SERVICE_GOPHER 2 #define INTERNET_SERVICE_HTTP 3 #define INTERNET_FLAG_PASSIVE 134217728 // // flags for FTP // #define INTERNET_FLAG_TRANSFER_ASCII 1 #define INTERNET_FLAG_TRANSFER_BINARY 2 //------------------------------------------------------------------- FUNCTION MandaFTP(host, usuario, senha, pastaServ, arquivo, pastaLocal, oquefazer ) LOCAL hInternet, hConnect Local afiles hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 ) hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ) if oquefazer = "pega" if ! FTPGETFILE( hConnect, pastaServ+arquivo, pastaLocal+arquivo, 0, FILE_ATTRIBUTE_ARCHIVE, 0, 0 ) msgStop("Erro ao receber arquivo "+pastaServ+arquivo,"Atenção!") end else if FTPPUTFILE( hConnect, pastaLocal+arquivo, pastaServ+arquivo, 0, 0 ) msginfo("Arquivo enviado.","Sucesso!") else msgalert("Falha no envio do arquivo"+CRLF+; "Verifique conexão com a internet e firewall.","Problemas.") end end INTERNETCLOSEHANDLE( hConnect ) INTERNETCLOSEHANDLE( hInternet ) RETURN NIL //============================================================================================== * FUNCTION MandaImg(host, usuario, senha, pasta, aJPG, dir, oquefazer, QuemChamou) LOCAL hInternet, hConnect local hFTPDir, aFiles := {} local oWin32FindData, cBuffer Local aonde, arquivo /* STRUCT oWin32FindData MEMBER nFileAttributes AS DWORD MEMBER nCreationTime AS STRING LEN 8 MEMBER nLastReadAccess AS STRING LEN 8 MEMBER nLastWriteAccess AS STRING LEN 8 MEMBER nSizeHight AS DWORD MEMBER nSizeLow AS DWORD MEMBER nReserved0 AS DWORD MEMBER nReserved1 AS DWORD MEMBER cFileName AS STRING LEN 260 MEMBER cAltName AS STRING LEN 14 ENDSTRUCT */ hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 ) hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ) if oquefazer = "vesetem" cBuffer = oWin32FindData:cBuffer hFTPDir = FtpFindFirstFile( hConnect, "*.*", @cBuffer, 0, 0 ) oWin32FindData:cBuffer = cBuffer if ! Empty( oWin32FindData:cFileName ) aadd( aFiles, { oWin32FindData:cFileName,; oWin32FindData:nSizeLow } ) while InternetFindNextFile( hFTPDir, @cBuffer ) oWin32FindData:cBuffer = cBuffer aadd( aFiles, { oWin32FindData:cFileName,; oWin32FindData:nSizeLow } ) end endif if len(afiles)>0 for i=1 to len(aJPG) aonde := ascan(afiles,aJpg) if aonde > 0 adel(aJPG,aonde) //fica na matriz somente o que vai ser enviado end next else msgAlert("Erro ao carregar Dir Remoto."+CRLF+"Conexão falhou."+CRLF+"Gere o relatório novamente.","Atenção:") end else aJPg := {} end if len(aJPG)>0 for i=1 to len(aJPG) arquivo := aJPG if FTPPUTFILE( hConnect, dir+arquivo, pasta+arquivo, 0, 0 ) if QuemChamou = "WT5f0A" msginfo("Arquivo enviado.","Sucesso!") end // crio log da transacao else msgalert("Falha no envio do arquivo"+CRLF+; "dir+arquivo: "+dir+arquivo + CRLF+; "pasta+arquivo: "+pasta+arquivo+CRLF+; "Verifique conexão com a internet e firewall.","Problemas.") end next end INTERNETCLOSEHANDLE( hConnect ) INTERNETCLOSEHANDLE( hInternet ) RETURN NIL * //================================================================================================ #pragma BEGINDUMP #include "windows.h" #include "wininet.h" #include "hbapi.h" HB_FUNC( INTERNETOPEN ) { hb_retnl( ( LONG ) InternetOpen( hb_parc( 1 ), hb_parnl( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parnl( 5 ) ) ); } HB_FUNC( INTERNETCLOSEHANDLE ) { hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) ); } HB_FUNC( INTERNETCONNECT ) { hb_retnl( ( LONG ) InternetConnect( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( INTERNET_PORT ) hb_parnl( 3 ), hb_parc( 4 ), hb_parc( 5 ), hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) ) ); } HB_FUNC( FTPGETFILE ) { hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) ); } HB_FUNC( FTPPUTFILE ) { hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) ); } HB_FUNC( FTPDELETEFILE ) { hb_retl( FtpDeleteFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } HB_FUNC( FTPCREATEDIRECTORY ) { hb_retl( FtpCreateDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } HB_FUNC( FTPREMOVEDIRECTORY ) { hb_retl( FtpRemoveDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } HB_FUNC( FTPFINDFIRSTFILE ) { hb_retnl( ( LONG ) FtpFindFirstFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( WIN32_FIND_DATA * ) hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) ); } HB_FUNC( INTERNETFINDNEXTFILE ) { hb_retl( InternetFindNextFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) ); } #pragma ENDDUMP aproveitei o seu kk, porque inserir nao consigo, mas ta ai Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 22, 2023 Report Share Posted November 22, 2023 Ah, muleke!!! kkkkkk Thanks. abs. Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted December 31, 2023 Report Share Posted December 31, 2023 Você precisa analisar o array gerado por ftpdirectory e verificar se a linha é de fato o arquivo que você que baixar, porque nesse array armazena coisas que fazem parte da estrutura das pastas que não os arquivos que deseja baixar. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.