Tarea secuencias de comandos y ftp. Descarga de archivos con comod

18/11/2009 - 18:25 por José Mª Fueyo | Informe spam
Hola a todos
Me estoy volviendo loco con esto. He configurado una tarea de secuencias de
comandos para descargarme una serie de archivos, diáriamente, que empiezan
con la fecha en formato aaaammdd. Se conecta bien pero el paquete no se baja
nada, y no da ningún error. Os dejo el código que uso, a ver sí alguien me
puede dar alguna pista de que es lo que pasa

<pego>
Public Sub Main()
'
' Add your code here
'
Try
Dim sArchivo(0) As String
Dim Vars As Variables

'Archivos a recibir
sArchivo(0) = Format(Year(Now), "0000") & _
Format(Month(Now), "00") & _
Format(Day(Now), "00") & "*.txt"

'******************************************************
'Recupero variables configuradas en el paquete
'******************************************************
'Servidor FTP
Dim sFTPServer As String
Dts.VariableDispenser.LockOneForRead("sFTPServer", Vars)
sFTPServer = Vars("sFTPServer").Value.ToString()
Vars.Unlock()
'Usuario
Dim sFTPUser As String
Dts.VariableDispenser.LockOneForRead("sFTPUser", Vars)
sFTPUser = Vars("sFTPUser").Value.ToString()
Vars.Unlock()
'PW
Dim sFTPpw As String
Dts.VariableDispenser.LockOneForRead("sFTPPassword", Vars)
sFTPpw = Vars("sFTPPassword").Value.ToString()
Vars.Unlock()
'Directorio local
Dim sDirLocal As String
Dts.VariableDispenser.LockOneForRead("sLocalPath", Vars)
sDirLocal = Vars("sLocalPath").Value.ToString()
Vars.Unlock()
'Directorio de copia
Dim sDirLocalBK As String
Dts.VariableDispenser.LockOneForRead("sLocalPathBK", Vars)
sDirLocalBK = Vars("sLocalPathBK").Value.ToString()
Vars.Unlock()

'Configuro la conexión FTP
Dim cnFTP As ConnectionManager = Dts.Connections("ftpLOOMIS")
'Configuro la conexión
cnFTP.Properties("ServerName").SetValue(cnFTP, sFTPServer)
cnFTP.Properties("ServerUserName").SetValue(cnFTP, sFTPUser)
cnFTP.Properties("ServerPassword").SetValue(cnFTP, sFTPpw)
cnFTP.Properties("ServerPort").SetValue(cnFTP, "21")
cnFTP.Properties("Timeout").SetValue(cnFTP, "0")
cnFTP.Properties("ChunkSize").SetValue(cnFTP, "1000")

'Creo el objeto ftp
Dim ftp As FtpClientConnection = New
FtpClientConnection(cnFTP.AcquireConnection(Nothing))
'Abro la conexión, recupero el archivo, lo borro en origen y
cierro conexión

ftp.Connect()
ftp.SetWorkingDirectory("\")
ftp.UsePassiveMode = False
ftp.ReceiveFiles(sArchivo, sDirLocal, True, True)
ftp.DeleteFiles(sArchivo)
ftp.Close()

Dts.TaskResult = Dts.Results.Success
Catch ex As Exception
MsgBox("Error :: " + ex.ToString)
Dts.TaskResult = Dts.Results.Failure
End Try
End Sub
</pego>

Gracias.

Salu2,
José Mª Fueyo
 

Leer las respuestas

#1 José Mª Fueyo
19/11/2009 - 14:12 | Informe spam
Hola de nuevo
Lo he solucionado obteniendo la lista de archivos en el ftp en un
array, recuperar de estos solo los nombres de los archivos que se
ajustan a mi criterio (empiezan por aaaammdd) en otro array y pasar
éste al método ReceiveFiles.
¿Se puede usar comodines para recuperar archivos según un criterio?
estoy empezando a pensar que no, a menos que alguien me comente otra
forma de hacerlo.

Salu2
José Mª Fueyo

Preguntas similares