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 namespaceSystem
, 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 classeEnvironment
no código interno do Formulário. -
Esse item é uma melhoria: Fazer o “dispose” da variável
responseStream
utilizando a declaração de escopousing
. -
Por último, ao invés de usar
Console.WriteLine
, atribua o código HTML da variávelTabela
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: