bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Baixar Arquivo em Servidor FTP

Baixar Arquivo em Servidor FTP

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Usuário Ilson:

Boa tarde!

É possível obter o nome de um arquivo no servidor FTP? Se a resposta for positiva, qual o comando utilizar?  Seria o mesmo utilizado quando desejamos saber o nome em pastas do computador em uso (Dir(c:/pasta/pasta/arquivo.ext)) ?

Minha necessidade é a seguinte: atualizar um aplicativo em vários clientes, enviando o pacote de instalação para o servidor FTP.   Atualmente, este pacote é enviado ao cliente e o aplicativo faz a verificação, em pasta fixa, se existe um arquivo com número de versão diferente da que está em uso, gravada no registro do Windows.  Usando a mesma lógica, gostaria de verificar no servidor FTP se existe um arquivo que contém no nome (ex: Versao100999.exe) uma versão com número superior ao da versão em uso. Neste caso seria baixado o pacote e executada a atualização.

Fico grato se puder me ajudar. Abraços.

Suporte:

Olá, Ilson!

Serve o Vba baixar um arquivo, automaticamente, sempre que abrir o aplicativo, para uma pasta local e então analisar este arquivo baixado?

Usuário Ilson:

Olá, Avelino, obrigado por analisar meu pedido. Havia pensado nessa hipótese, porém, o arquivo de instalação é grande e seria demorado baixá-lo, todas as vezes e, na maioria delas, não seria utilizado. Com a sua resposta me ocorreu uma outra saída e, portanto, fico grato se puder informar uma forma rápida de fazer a baixa na forma sugerida.

Abraços e Obrigado.

Suporte:

Ilson, O que eu imaginei foi você usar um arquivo txt. Ao abrir o aplicativo, este pequeno txt é baixado, e nele então, você verifica a necessidade de atualização.  Ao sair do aplicativo, esse txt é deletado. Caso necessite atualizar, você baixa de forma automática o aplicativo ou gera mensagem de nova atualização.

Testei aqui com o meu FTP e funcionou com o código abaixo.  Tente adaptá-lo para o seu caso.

Public Sub FtpReceber()
Dim vPath As String
Dim vFile As String
Dim vFTPServ As String
Dim fNum As Long

vPath = "e:\redeaccess\avelino"
vFile = "C150928A.TXT" 'nome do arquivo a ser baixado
vFTPServ = "www.redeaccess.com.br" 'Seu servidor

'Montando o comando ftp.exe
fNum = FreeFile()
Open vPath & "\FtpComm.txt" For Output As #fNum
Print #1, "user pastaftp@redeaccess.com.br" 'Usuário
Print #1, "suaSenha" 'Senha
Print #1, "get " & """" & vFile & """" & " " & vPath & "\ftp\" & vFile 'Donwload do FTP
Print #1, "close" 'Fecha conexão
Print #1, "quit" 'Fecha programa FTP
Close

shell "ftp -n -i -g -s:" & vPath & "\FtpComm.txt " & vFTPServ, vbNormalNoFocus

End Sub

Usuário Ilson:

Resolvi e já testei a solução que encontrei para este caso.  Em um módulo, criei a seguinte função (o aplicativo funciona no Access 2007 e 2010):

#If VBA7 Then
Public Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Else
Public Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If
-----------------------------------------------------------------------------------
Public Function fncDownloadFile(Url As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long

lngRetVal = URLDownloadToFile(0, Url, LocalFilename, 0, 0)
If lngRetVal = 0 Then
   If Dir(LocalFilename) <> vbNullString Then
      fncDownloadFile = True
   End If
End If

End Function

Suporte:

Sucesso Ilson e obrigado pelo feedback!

 


 

 


1 comentário(s)

Fabio   20/07/2018 08:36:51

Mestre Avelino, boa tarde.
Existe uma forma de o sistema reconhecer que tela do download do FTP já fechou?
O que preciso é que o sistema execute uma ação somente após o download do arquivo.


Envie seu comentário: