Jump to content
luciomorais

c#, FTP e listagem

Recommended Posts

luciomorais

Boa noite, não sei se já existe algum topico sobre este assunto caso haja peço desculpa!

Mas indo ao que importa...

Bem to a tentar fazer uma app cliente do género que o dropbox possui.

Seja possível sincronizar todas as mudanças que existem na pasta e sincronizar com o servidor (Cloud), a minha questão é se sabem de alguma forma poder listar tudo que existe no servidor e de forma mais eficiente possivel, os metodos que existem com o FtpWebRequest para listagem só listam a directoria que estamos a "ver" (basicamente directoria root)...

Para já estou a usar FTP como protocolo de transferência e a usar um servidor no 000WebHost mas será posteriormente para aplicar com um servidor Cloud da empresa onde trabalho e penso que protocolo FTP possa fazer esse serviço...

Só que tenho deparado com alguns problemas de eficiencia com o FTP como lentidão de processos, o DropBox já li que usa o rsync mas em .NET não existe compatibilidade e penso que seja preciso configurar qualquer coisa no servidor Cloud e eu não tenho acesso nem tenho acerteza se seja possivel..

Tambem existe o ownCloud e a app cliente deles usam o ocSync e o mirall...

Peço a vossa ajuda para resolver alguns destes problemas.

Cumprimentos

Share this post


Link to post
Share on other sites
Rui Carlos

Que tenha conhecimento, o protocolo FTP só permite listar um directório específico. Em princípio terás que implementar tu a funcionalidade de listar tudo. Uma forma de optimizar esta operação passa por usar várias threads para efectuar pedidos ao servidor de forma concorrente.

Share this post


Link to post
Share on other sites
brunobola

Podes obter o conteúdo em XML e tratar o que pretendes mostrar, por exemplo:

public class WebRequestGetExample
{
public static void Main ()
{
	// Get the object used to communicate with the server.
	FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/");
	request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

	// This example assumes the FTP site uses anonymous logon.
	request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");

	FtpWebResponse response = (FtpWebResponse)request.GetResponse();

	Stream responseStream = response.GetResponseStream();
	StreamReader reader = new StreamReader(responseStream);
	Console.WriteLine(reader.ReadToEnd());

	Console.WriteLine("Directory List Complete, status {0}", response.StatusDescription);

	reader.Close();
	response.Close();
}
}
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.