Array
(
)

verificando a existência de subpastas em um diretorio FTP

Max
|
MVP
    14 jan 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.

#Código
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.

Robson Robsonalves.net
   - 14 jan 2013

vc vai ter que fazer recursão.

Veja:
http://stackoverflow.com/questions/13121196/ftp-directory-subdirectory-listing-using-edtftpnet-c

Max
|
MVP
    14 jan 2013


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

#Código
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?

Robson Robsonalves.net
   - 15 jan 2013

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

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