Visual Basic - Abrir archivo alojado en ftp://

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Abrir archivo alojado en ftp://

Publicado por Everardo (1 intervención) el 14/08/2019 19:39:35
Buen día.

Estoy intentado entrar a una dirección ftp:// para copiar archivos y pegarlos en mi escritorio. En el pasado he utilizado el siguiente código.

1
2
3
4
5
Private Sub CommandButtton_1()
 
Shell "explorer " & "ftp://192.168.30.21/usb1/trend/Gra_HR/", vbNormalFocus
 
End Sub

Esto me llama a la ruta que requiero, el problema es que tengo que meter de manera manual el usuario y contraseña, además de asignar la ruta de destino y mi intención es saltarme todos los pasos con código vba desde Excel.

Agradezco mucho la atención a mi consulta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.799
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir archivo alojado en ftp://

Publicado por Andres Leonardo (1553 intervenciones) el 14/08/2019 22:38:31
Espero este te ayude

Yo utilizo Putty (un ejecutable que puedes descargar de la web, ese .exe lo pones en tu proyecto junto al .EXE de tu app) y lo que hago es darle un archivo TXT donde estan todos los comandos ... el resto lo hace el ...

1
2
3
4
5
6
' El contenido del Arhivo TXT  llamado FILESX.TXT
'Aqui se podria hacer que tu proceso genere este archivo txt y lo actualice para poner parametros como la fecha si la necesitas 
lcd C:\Carpeta\vbleo\Procesos\Descarga\  'Esta es la ruta local donde van a estar los archivos 
cd REPOSITORIO   ' esta linea ve Si es que dentro del sftp existe un directorio adicional si es en raiz no pongas
mget Archivos*201908*.TXT  ' Este es un comando para obtener MUCHOS archivos que cumplan con ese nombre.
get Archivo.txt  ' Este es un comando para obtener 1 archivo que cumpla exactamente con el nombre


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'PSFTP es el putty.exe  que esta en la misma ruta de mi ejecutable esta es como se llama 
Sub decargasftp()
    'Elcomando = App.Path & "\Psftp 192.168.168.2 -l AquiElUsuario -pw AquivaLaClave -b " & App.Path & "\Archivo.txt"
     Elcomando = App.Path & "\Psftp 192.168.168.2 -l aguerrero -pw Aga1234 -b " & App.Path & "\FilesX.txt"
    EjecutaComandoMSDOS(Elcomando)
 
End Sub
 
 
'El que ejecuta el 
'Un procedimiento para ejecutar y esperar a que termine
Public Sub EjecutaComandoMSDOS(ByVal CmdLine As String)
    'Esperar a que un proceso termine,
    'la ventana se mostrará minimizada sin foco
    Dim hProcess As Long
    Dim RetVal As Long
    On Error GoTo tg_ERROR
 
 
    'The next line launches CmdLine as icon,
    'captures process ID
    'MsgBox CmdLine
 
    'hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
    '        Shell(CmdLine, vbMinimizedNoFocus))
 
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
            Shell(CmdLine, vbMinimizedNoFocus))
    Do
        'Get the status of the process
        GetExitCodeProcess hProcess, RetVal
        'Sleep command recommended as well
        'as DoEvents
        DoEvents
            Sleep 100
 
    Loop While RetVal = STILL_ACTIVE
    Exit Sub
 
 
tg_ERROR:
    MsgBox Str$(Err.Number) & " - " & Err.Description
 
End Sub


Crea el txt donde esten los comando del get
baja el putty y desde dos ejecuta el putty con los parametros indicados el resto lo hace el programa



*Estaa es otra alternativa****************************************
Antes se usaba un INET este era el codigo pero no tengo ejemplo a la mano*****************************
B
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar