ERRO DOWNLOAD ARQUIVO FTP

 Tópico anterior Próximo tópico Novo tópico

ERRO DOWNLOAD ARQUIVO FTP

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484834 - 07/10/2018 21:38:10

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Última edição em 07/10/2018 21:41:00 por ATSILVA

Utilizo a função abaixo para efetuar download de arquivos.
O problema é quando o arquivo não existe mais no endereço.
O erro ocorre na linha em negrito.
Gostaria de quando o arquivo não existisse, a função passasse par ao próximo até o final da lista.

  private void DownloadFTP(string filePath, string fileName)
        {
            FtpWebRequest reqFTP;

            //endereço do servidor FTP
            string ftpServerIP = "www.seudominio.com.br";

            //filePath = <<o caminho completo onde o arquivo deve ser criado>>,
            //fileName = <<nome do arquivo a ser criado, não é necessário nome no servidor FTP. nome nome()>>
            FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);

            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileName));
            reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
            reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential("usuario", "senha");
            FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

            Stream ftpStream = response.GetResponseStream();
            long cl = response.ContentLength;
            int bufferSize = 2048;
            int readCount;
            byte[] buffer = new byte[bufferSize];

            readCount = ftpStream.Read(buffer, 0, bufferSize);
            while (readCount > 0)
            {
                outputStream.Write(buffer, 0, readCount);
                readCount = ftpStream.Read(buffer, 0, bufferSize);
            }

            //fecha variaveis
            ftpStream.Close();
            outputStream.Close();
            response.Close();
        }




Resposta escolhida #484837 - 08/10/2018 10:33:08

ALEVALE
JUNDIAI
Cadast. em:Março/2012


Uso esse para http, não testei em FTP, mas deve funcionar.
  
Public Function CheckAddress(ByVal URL As String) As Boolean
        Try
            Dim request As WebRequest = WebRequest.Create(URL)
            Dim response As WebResponse = request.GetResponse()
            response.Close()

        Catch ex As Exception
            Return False
        End Try

        Return True
    End Function

---------------------------------------------------------------
"Já está provado por A+B que A+B num prova nada"
---------------------------------------------------------------

#484844 - 08/10/2018 12:25:12

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Boa tarde!

Você tem duas opções:

Usar uma requisição FTP com um comando para listar os arquivos disponíveis no diretório. Assim você saberia quais arquivos estão lá, e só pediria download deles.

Ou então, você poderia simplesmente usar um try-catch.

Abraços!

"Cansei de frases intelectuais" - Eu mesmo


#484849 - 08/10/2018 14:14:31

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Obrigado a todos em especial ao ALEVALE.
Passei seu código para o C# e funcionou certinho.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ATSILVA em 08/10/2018 14:14:59