Script para extrair informações de arquivos do servidor ftp
Questão
![](http://img.brin-designs.com/img/games/517/script-extract-files-info-from-ftp-server.png)
Pergunto-me se você poderia me ajudar com o seguinte, por favor.
Eu gostaria de construir um script (em qualquer idioma, o que for mais fácil) que quando executado, ele irá fazer logon em um servidor ftp existente usando uma conta genérica e senha, em seguida, liste os arquivos em uma pasta específica que começa com a seqüência "abc ". Os nomes dos arquivos, juntamente com a data de criação, devem ser extraídos em um arquivo csv (ou similar). Alguém pode me ajudar com isso, por favor?
Solução
Aqui está o script:
ftp.Hostname = "ftp.test.com"
ftp.Username = "Usuário"
ftp.Password = "Pass"
'O modo de transferência de dados padrão é "Ativo" em oposição a "Passivo".
'Altere para Passivo configurando a propriedade Passiva:
ftp.Passive = 1
'Estabelecer um canal seguro AUTH SSL após conexão
'na porta FTP padrão 21.
ftp.AuthTls = 1
'A propriedade Ssl é para estabelecer uma conexão SSL implícita
'na porta 990. Não o ajuste.
ftp.Ssl = 0
'Conecte e faça o login no servidor FTP.
connectStatus = ftp.Connect ()
Se (connectStatus 1) então
'MsgBox ftp.LastErrorText
'WScript.Quit
Principal = DTSTaskExecResult_Failure
Outro
dirStatus = ftp.ChangeRemoteDir ("RMed")
Se (dirStatus 1) Então
'MsgBox ftp.LastErrorText
'WScript.Quit
Principal = DTSTaskExecResult_Failure
Fim se
'MsgBox ftp.getCurrentRemoteDir ()
'especifica o caminho e o nome do arquivo na máquina local
localInvoiceFile = "C: Documents and SettingsNathanMy Documents2dRMedInvoice_RMed.txt"
localPatientFile = "C: Documents and SettingsNathanMy Documents2dRMedPatient_RMed.txt"
'especifica o caminho e o nome do arquivo na máquina remota
remoteInvoiceFile = "C: ClientsStratFile UploadsCustomer UploadsRMedInvoice_RMed.txt"
remotePatientFile = "C: ClientsStratFile UploadsEntrevistas do clienteRMedPatient_RMed.txt"
'MsgBox remoteInvoiceFile
'MsgBox remotePatientFile
'baixar os arquivos do servidor remoto
transferStatus = ftp.getFile (remoteInvoiceFile, localInvoiceFile)
se (transferStatus 1) então
'MsgBox ftp.LastErrorText
Principal = DTSTaskExecResult_Failure
outro
Principal = DTSTaskExecResult_Success
fim se
transferStatus = ftp.GetFile (remotePatientFile, localPatientFile)
se (transferStatus 1) então
'MsgBox ftp.LastErrorText
Principal = DTSTaskExecResult_Failure
outro
Principal = DTSTaskExecResult_Success
fim se
FIM SE
ftp.Disconnect
Função final
Nota
Obrigado ao cb4nd17 por essa dica no fórum.