Listar arquivos de um FTP utilizando C# no LATROMI

Olá @Framos!

Poucos ajustes são necessários para que este código seja executado nos Formulários do LATROMI.

Seguem as modificações que precisam ser feitas:

  • Remover o using do namespace System, pois ele já está implicitamente em uso.

  • Remover a declaração de namespace, class e de método, já que o código será envolvido em métodos e classes internas do Formulário.

  • Utilizar o nome completo (qualificado) da classe System.Environment, pois já existe uma classe Environment no código interno do Formulário.

  • Esse item é uma melhoria: Fazer o “dispose” da variável responseStream utilizando a declaração de escopo using.

  • Por último, ao invés de usar Console.WriteLine, atribua o código HTML da variável Tabela a um campo do tipo HtmlElement dessa forma:

    Fields["elmArquivos"].Value = Tabela;
    

Segue o código completo:

using System.IO;
using System.Net;

string Tabela = "";
List<string> liArquivos = new List<string>();
//Cria comunicação com o servidor
//Definir o diretório a ser listado
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://{Endereço do FTP}");
//Define que a ação vai ser de listar diretório
request.Method = WebRequestMethods.Ftp.ListDirectory;
//Credenciais para o login (usuario, senha)
request.Credentials = new NetworkCredential("{Usuário}", "{Senha}");
//modo passivo
request.UsePassive = true;
//dados binarios
request.UseBinary = true;
//setar o KeepAlive para true
request.KeepAlive = true;

using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
    //Criando a Stream para pegar o retorno
    using(Stream responseStream = response.GetResponseStream())
    using (StreamReader reader = new StreamReader(responseStream))
    {
        //Adicionar os arquivos na lista
        liArquivos = reader.ReadToEnd().Split(System.Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList<string>();
    }
}

//Criar a tabela
Tabela = "<table>\n";
foreach (string item in liArquivos)
{
    //Console.WriteLine(item + "\n");
    Tabela = Tabela + "<tr><td>" + item + "</td><td><button type='submit'>Baixar</button></td></tr>\n";
}
Tabela = Tabela + "</table>";

// Insere elemento "table" no campo do tipo HtmlElement
Fields["elmArquivos"].Value = Tabela;

Para maiores informações sobre como utilizar código C# no LATROMI, acesse:

2 curtidas