Ir para o conteúdo
luciomorais

c#, FTP e listagem

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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();
}
}
 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.