FTP -Verificar se existe um arquivo em uma determinada pasta
25/06/2004
0
Ricardo
[color=red:563b0d1b44]Título alterado pelo Moderador oTTo. Removido: ´FTP´.[/color:563b0d1b44]
Zlink
Posts
26/06/2004
Tatuweb
var hConnection, hOpen, hFind: PInteger; hData: TWIN32FINDDATA; begin hOpen := InternetOpen (´´, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); hConnection := InternetConnect (hOpen, ´ftp.seusite.com.br´, INTERNET_DEFAULT_FTP_PORT, ´seulogin´, ´suasenha´, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0); FtpSetCurrentDirectory (hConnection, ´pasta_a_ser_verificada´); hFind := FtpFindFirstFile (hConnection, ´arquivo.exe´, hData, 0, 0); if hFind = nil then Caption := ´Arquivo não foi encontrado.´ else Caption := ´O Arquivo foi encontrado.´; InternetCloseHandle (hConnection); InternetCloseHandle (hOpen); end;
26/06/2004
Tatuweb
:wink:
29/06/2004
Zlink
Tem alguma forma de saber se tivemos acesso a determinado ftp ou pasta, algum retorno, exemplo:
label1.caption := ftp que está logado ou a pasta atual no ftp
Cordialmente
Ricardo
29/06/2004
Zlink
Refiz os testes com mais calma, e deu certo, muito obrigado pela rotina, se tiver mais algumas como:
a) listar os aquivos da pasta
b) ...
Ficarei muito agradecido.
Atenciosamente
José Ricardo
29/06/2004
Zlink
d) editar um arquivo txt ou baixar para a máquina local para edita-lo
Obrigado
29/06/2004
Flaviosan
Espero ter ajudado.
29/06/2004
Zlink
Como trocar as variaveis(pastas por edits)
Exemplo:
hConnection := InternetConnect (hOpen, ´meuftp.com.br´, INTERNET_DEFAULT_FTP_PORT,
hConnection := InternetConnect (hOpen, [b:68ecf2eacf]Edit1.text[/b:68ecf2eacf], INTERNET_DEFAULT_FTP_PORT,
´´, ´´, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
FtpSetCurrentDirectory (hConnection, ´/pasta/subpasta/´);
FtpSetCurrentDirectory (hConnection, [b:68ecf2eacf]edit2.text[/b:68ecf2eacf]);
30/06/2004
Tatuweb
Faça do jeito que está fazendo mas antes coloque um PChar. Isso vai resolver o problema:
[b:9c8c5bc626]PChar (Edit1.Text)[/b:9c8c5bc626]
[b:9c8c5bc626]Outros comandos:[/b:9c8c5bc626]
[b:9c8c5bc626]Fazer download [/b:9c8c5bc626]
FtpGetFile (hConnection, ´arquivo.exe´, ´c:\pasta_onde_vou_guardar\arquivo.exe´, False, 0, 0, 0);
[b:9c8c5bc626]Fazer Upload [/b:9c8c5bc626]
FtpPutFile (hConnection, ´C:\arquivo.exe´, ´arquivo.exe´, 0, 0);
[b:9c8c5bc626]Deletar arquivo no servidor [/b:9c8c5bc626]
FtpDeleteFile (hConnection, ´arquivo.exe´);
[b:9c8c5bc626]Renomear um arquivo no servidor[/b:9c8c5bc626]
FtpRenameFile (hConnection, ´arquivo.exe´, ´file.exe´);
[b:9c8c5bc626]Remover um diretório no servidor[/b:9c8c5bc626]
FtpRemoveDirectory (hConnection, ´nome_do_diretorio´);
As tres primeiras e as duas ultimas linhas da rotina passada no outro post permanecem iguais. O resto é só adaptar. As rotinas acima são apenas uma alternativa ao uso dos componentes Indy e FastNet para evitar problemas com versões diferentes do Delphi. Use PChar antes das strings. Eu esqueci de colocar.
Mais sobre funções FTP em (conteúdo inglês):
http://www.swissdelphicenter.ch/torry/showcode.php?id=1095
http://www.cryer.co.uk/brian/delphi/wininet.htm
:wink:
30/06/2004
Zlink
Funcionou beleza, estou precisando agora só de saber como pegar a lista de pastas e de arquivos de um ftp.
Atenciosamente
José Ricardo
01/07/2004
Tatuweb
http://users.servicios.retecal.es/sapivi/src/D5_WinInetFTP.zip
02/02/2005
Guima
Sem mais e obrigado
Guima
29/04/2015
Antunes Rodrigo
http://www.cryer.co.uk/brian/delphi/wininet/example_findfirstnextfile.htm
Clique aqui para fazer login e interagir na Comunidade :)