verificando a existência de subpastas em um diretorio FTP

14/01/2013

Hoje tem essa estrutura para criar pasta no FTP. Só que não consigo verificar se existem subpastas dentro de um determinado diretório.


 public static void CriarPastaFTP(string Pasta)
        {
            try
            {
                NetworkCredential Credentials = new NetworkCredential(UserSession.TabuladorController.FTPUsuario, UserSession.TabuladorController.FTPSenha);

                FtpWebRequest Request = (FtpWebRequest)FtpWebRequest.Create(UserSession.TabuladorController.FTPEndereco);
                Request.Credentials = Credentials;
                Request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                WebResponse Response = Request.GetResponse();

                StreamReader reader = new StreamReader(Response.GetResponseStream());
                bool ExistePasta = reader.ReadToEnd().Contains(Pasta);

                if (!ExistePasta)
                {
                    Request = (FtpWebRequest)FtpWebRequest.Create(UserSession.TabuladorController.FTPEndereco + Pasta);
                    Request.Credentials = Credentials;
                    Request.Method = WebRequestMethods.Ftp.MakeDirectory;
                    Response = Request.GetResponse();
                }
                Response.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("Verifique se o endereço existe!");
            }
        }


Como listar os subdiretorios?

Muito obrigado.

Respostas

14/01/2013

Robson Robsonalves.net

vc vai ter que fazer recursão.

Veja:
[url]http://stackoverflow.com/questions/13121196/ftp-directory-subdirectory-listing-using-edtftpnet-c[/url]
Responder Citar

14/01/2013

Max Currículo


Nesse Exemplo, percorro todos os diretórios do FTP, mas não consego acessar os subdiretórios.

FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(uri);
ftpRequest.Credentials =new NetworkCredential("anonymous","janeDoe@contoso.com");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());

List<string> directories = new List<string>();

string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
    directories.Add(line);
    line = streamReader.ReadLine();
}

streamReader.Close();[


Tem algum metódo, que eu posso acessar o subdiretório?
Responder Citar

15/01/2013

Robson Robsonalves.net

Cara, eu nunca fiz isso, mas li que o ListDirectory resolve isso:

http://www.copyandwaste.com/posts/view/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/
Responder Citar