none
Todos Nomes de Arquivos via FTP de um diretório + C#

    Question

  • Olá pessoal.

     

    Estou com uma dificuldade. Preciso pegar todos nomes de dentro de um diretorio em uma pasta no servidor via FTP, o problema é...estou já fazendo download dos programas, so que sitando seus nomes, o que preciso é...quando colocar um arquivo nesse diretorio, quando ativado o programa, o mesmo fara o download de todos arquivos.

     

    Para isso preciso saber os nomes desses arquivos, é o que estou com dificuldades, pois o download via FTP está acontecendo.


    Utilizo para isso as classes FtpWebRequest e FtpWebResponse para download mas para saber os nomes ou quantidade não achei como fazer.

     

    Obrigado pela ajuda.

    Monday, April 12, 2010 2:51 PM

Answers

  • Olá Diogo,

     

    se eu entendi bem, a classe FtpWebRequest vai fazer o que vc quer. Veja se isso pode te ajudar:

     

    string server, path, user, pass;
    
                //Inicializa variáveis...
    
                
                FtpWebRequest fwrr = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + server + path));
    
                fwrr.Credentials = new NetworkCredential(user,pass);
                fwrr.Method = WebRequestMethods.Ftp.ListDirectory;  
                StreamReader srr = new StreamReader(fwrr.GetResponse().GetResponseStream());
                string str = srr.ReadLine();
                List<string> strList = new List<string>();
                while (str != null)
                {
                    strList.Add(str);
                    //strList.Add(string.Format("ftp://{0}/{1}/{2}",server,path,str));  //Pegando o caminho completo
                    str = srr.ReadLine();
                }
    
                foreach (var item in strList)
                {
                    Console.WriteLine(item.ToString());
                }
                Console.ReadLine();

     

    Espero ter ajudado.

     

     

    Monday, April 12, 2010 4:36 PM

All replies

  • Olá Diogo,

     

    se eu entendi bem, a classe FtpWebRequest vai fazer o que vc quer. Veja se isso pode te ajudar:

     

    string server, path, user, pass;
    
                //Inicializa variáveis...
    
                
                FtpWebRequest fwrr = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + server + path));
    
                fwrr.Credentials = new NetworkCredential(user,pass);
                fwrr.Method = WebRequestMethods.Ftp.ListDirectory;  
                StreamReader srr = new StreamReader(fwrr.GetResponse().GetResponseStream());
                string str = srr.ReadLine();
                List<string> strList = new List<string>();
                while (str != null)
                {
                    strList.Add(str);
                    //strList.Add(string.Format("ftp://{0}/{1}/{2}",server,path,str));  //Pegando o caminho completo
                    str = srr.ReadLine();
                }
    
                foreach (var item in strList)
                {
                    Console.WriteLine(item.ToString());
                }
                Console.ReadLine();

     

    Espero ter ajudado.

     

     

    Monday, April 12, 2010 4:36 PM
  • Olá amigo!

    Tente isso:

    FtpWebRequest fwr = new FtpWebRequest(“ftp://ftp.site.com.br”);

    fwr.Credentials = new NetworkCredential(“userName”, “password”)
    fwr.Method = WebRequestMethods.Ftp.ListDirectory;

    StreamReader sr = new StreamReader(fwr.GetResponse().GetResponseStream());
       
    string str = sr.ReadLine();

    while (str != null)
    {

        Console.WriteLine(str);


             str = sr.ReadLine();
    }

    sr.Close();

    sr = Nothing;

    fwr = Nothing;

     

    []'s

    Luiz

    Monday, April 12, 2010 4:40 PM
  • Obrigado Amigos. Perfeito. estava proximo, mas não tinha olhado a classe WebRequestMethodos Ainda.

     

    Grato a todos.  Obrigado

    Monday, April 12, 2010 5:09 PM