Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function ConectaFTP(Host, UserName, Password : string): Boolean;
- var i: integer;
- caminhototal , pasta : string;
- begin
- {===============================================================================
- Componente FTP nao realiza a conexao em um ftp onde o host possui pastas
- EX: ftp.brasiltelecom.com.br/httpdocs/clientes/update/scripts
- A rotina considera que a primeira pasta antes da barra ( / ou \ ) é o host
- as demais sao pastas onde sera usanda a funcao ftp.ChangeDir para entrar nos
- diretorios
- ===============================================================================}
- caminhototal := Host;
- //=============== coloca se nao tiver a barra no final para controlar o final do host ================
- if not(caminhototal[ Length(caminhototal) ] In ['/','\'] ) then
- caminhototal := caminhototal + '/';
- //=============== A primeira pasta antes da barra é considerada o hot de conexao ================
- for i := 1 to Length(caminhototal) do
- begin
- if caminhototal[i] in ['\','/'] then
- begin
- caminhototal := Copy(caminhototal, i+1 , Length(caminhototal));
- Break;
- end
- else
- pasta := pasta + caminhototal[i];
- end;
- ftp.Host := pasta ;
- //===================== Se ja estiver conectado voltar para o diretorio Root do ftp =====================
- if ftp.Connected then
- begin
- { pasta := ftp.RetrieveCurrentDir;
- for i := 0 to Length(pasta) do
- begin
- if pasta[i] = '/' then
- ftp.ChangeDirUp;
- temp := ftp.RetrieveCurrentDir;
- end;
- }
- ftp.Disconnect;
- end;
- sleep(1000);
- if not ftp.Connected then
- begin
- ftp.Username := UserName;
- ftp.Password := Password;
- ftp.Host := pasta ;
- try
- ftp.Connect();
- except
- Result := False;
- Exit;
- end;
- end;
- //=============== Se conectou verifica se tem subpastas para entrar ================
- pasta := '';
- while caminhototal <> '' DO
- begin
- for i := 1 to Length(caminhototal) do
- begin
- if caminhototal[i] in ['\','/'] then
- begin
- caminhototal := Copy(caminhototal, i+1 , Length(caminhototal));
- ftp.ChangeDir(pasta);
- pasta := '';
- Break;
- end
- else
- pasta := pasta + caminhototal[i];
- end;
- Application.ProcessMessages;
- end;
- Result := True;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement