Conectar FTP

16/03/2010

Boa tarde, eu utilizava a FrameWork Chilkat para trabalhar com FTPs, mas ela possui um limite de 30 dias de uso, sendo posteriormente a necessidade de comprar a licença.

Gostaria de saber se existe alguma forma de comunicação via ftp com Frameworks Free ou com a própria da Microsoft.

Quero ver se encontro alguma alternativa antes de solicitar a compra dessa Framework, que por sinal é cara.


Desde já agraceço

PS. Utilizo o Visual Studio 2008 - WinForms

Facc

Respostas

16/03/2010

Jose Silva

Caro amigo   Você pode utilizar o FileZilla (http://filezilla-project.org) que é gratuito e um senhor programa de ftp.   Espero ter resolvido o seu problema.
Responder Citar

16/03/2010

Facc

na verdade queria algo para meu programa, ficando transparente para o usuário.
Responder Citar

17/03/2010

Marcio

Eu uso a versão gratuita do edtftpnet, você pode baixá-la gratuitamente no site do fabricante: http://www.enterprisedt.com/products/edtftpnet/overview.html
[]'s
Responder Citar

19/03/2010

Alexandre Machado

  FtpWebRequest _ftp; // abaixo voce define o arquivo que será transferido _ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://caminho/arquivo")); // abaixo voce detine o metodo de transferencia
_ftp.Method = WebRequestMethods.Ftp.DownloadFile;
// se é binario _ftp.UseBinary = true;
// se vai usar proxy _ftp.Proxy = HttpWebRequest.DefaultWebProxy;
// as credenciais do proxy _ftp.Proxy.Credentials = CredentialCache.DefaultCredentials; FtpWebResponse _response = (FtpWebResponse)_ftp.GetResponse();
// agora voce precisa pegar o que esta recebendo do ftp e gravar em um arquivo. Stream _ftpstream = _response.GetResponseStream();
long _cl = _response.ContentLength; int _bufferSize = 2048; int _readCount; byte[] _buffer = new byte[_bufferSize]; _readCount = _ftpstream.Read(_buffer, 0, _bufferSize); while (_readCount > 0) {
                            progressBar1.Increment(2048);
                            _outputStream.Write(_buffer, 0, _readCount);
                            Application.DoEvents();
                            _readCount = _ftpstream.Read(_buffer, 0, _bufferSize);
                        }                         _ftpstream.Close();
                        _outputStream.Close();
                        _response.Close();
Responder Citar

19/03/2010

Alexandre Machado

  FtpWebRequest _ftp; // abaixo voce define o arquivo que será transferido _ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://caminho/arquivo")); // abaixo voce detine o metodo de transferencia
_ftp.Method = WebRequestMethods.Ftp.DownloadFile;
// se é binario _ftp.UseBinary = true;
// se vai usar proxy _ftp.Proxy = HttpWebRequest.DefaultWebProxy;
// as credenciais do proxy _ftp.Proxy.Credentials = CredentialCache.DefaultCredentials; // FtpWebResponse _response = (FtpWebResponse)_ftp.GetResponse();
// agora voce precisa pegar o que esta recebendo do ftp e gravar em um arquivo. Stream _ftpstream = _response.GetResponseStream();
long _cl = _response.ContentLength; int _bufferSize = 2048; int _readCount; byte[] _buffer = new byte[_bufferSize]; _readCount = _ftpstream.Read(_buffer, 0, _bufferSize); while (_readCount > 0) {    _outputStream.Write(_buffer, 0, _readCount);    _readCount = _ftpstream.Read(_buffer, 0, _bufferSize); } _ftpstream.Close(); _outputStream.Close(); _response.Close();   bom, é mais ou menos isso,   tentei montar uma função para pegar um arquivo, passando por um ISA Server da microsoft, e não consegui, não sei se era alguma configuração do ISA, se for o seu caso fique atento.    
Responder Citar

19/03/2010

Alexandre Machado

  FtpWebRequest _ftp; // abaixo voce define o arquivo que será transferido _ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://caminho/arquivo")); // abaixo voce detine o metodo de transferencia _ftp.Method = WebRequestMethods.Ftp.DownloadFile; // se é binario _ftp.UseBinary = true; // se vai usar proxy _ftp.Proxy = HttpWebRequest.DefaultWebProxy; // as credenciais do proxy _ftp.Proxy.Credentials = CredentialCache.DefaultCredentials; FtpWebResponse _response = (FtpWebResponse)_ftp.GetResponse(); // agora voce precisa pegar o que esta recebendo do ftp e gravar em um arquivo. Stream _ftpstream = _response.GetResponseStream(); long _cl = _response.ContentLength; int _bufferSize = 2048; int _readCount; byte[] _buffer = new byte[_bufferSize]; _readCount = _ftpstream.Read(_buffer, 0, _bufferSize); while (_readCount > 0) {                             progressBar1.Increment(2048);                             _outputStream.Write(_buffer, 0, _readCount);                             Application.DoEvents();                             _readCount = _ftpstream.Read(_buffer, 0, _bufferSize);                         }                         _ftpstream.Close();                         _outputStream.Close();                         _response.Close();
Responder Citar

19/03/2010

Alexandre Machado

putz, que bagunça que eu fiz. hehehehe
Responder Citar