Verificar se diretório existe

Delphi

26/05/2013

Alguém conhece uma função que verifique se uma pasta já existe no servidor remoto FTP?

Estou usando o componente Indy TIdFTP.

Romario Melo

Romario Melo

Curtidas 0

Respostas

Guilherme Wiethaus

Guilherme Wiethaus

26/05/2013

Meu querido,

Listar Arquivos no Diretório:

idFTP.List(FileList, '*.exe', true);          // retorna a lista de todos os arquivos com *.exe
idFTP.List(FileList, 'meuarquivo.txt', true); // retorna um arquivo com nome meuarquivo.txt
idFTP.List(FileList, '', true);               // retorna uma lista com todos os arquivos no diretório
idFTP.List(FileList, '*.*', true);            // idem ao anterior


FileList é um descendente de classe TString. Todos os arquivos encontrados, usando o filtro, serão colocados na instância criada da classe TString.

idFTP é o componente instanciado da classe Indy TIdFTP.

Desta forma fica:

...
var
  FileList: TString;
begin
FileList:= TString.Create();
idFTP.List(FileList, '*.exe', true);          // retorna a lista de todos os arquivos com *.exe
Result:= (FileList.Count > 0);                //
FileList.Free;
...


Se existir algum conteúdo colocado na matriz instância TString, Count irá retornar o número de entradas inserida nesta matriz de string.

Abraços

GOSTEI 0
Romario Melo

Romario Melo

26/05/2013

Vou dá um exemplo...

eu quero saber se esse caminho já existe no servidor FTP:

eu acesso o host, ficando na raiz, dai preciso saber se o caminho já existe, se não vou ter que criar os caminho.
Então tenho que verificar pastas e subpastas. Dessa forma o FileList Não serve nesse caso.

www.meuhost.com/pasta1/subpasta1/
GOSTEI 0
Guilherme Wiethaus

Guilherme Wiethaus

26/05/2013

Duas referencias interessantes:

http://www.mofeel.net/1279-borland-public-delphi-internet-winsock/3373.aspx

Este mostra e discute o o algoritmo.

e um site em alemão, o cara escreveu em inglês:

Veja que ele coloca o uso de algumas propriedades interessantes para investigar o tipo de arquivo ou folder, um contador e listagem. Veja se se adapta a você, pegue os métodos e propriedades que já ajudam a montar seu código.

Delphi-Praxis
http://www.delphipraxis.net/165750-idftp-komplettes-verzeichnis-herunterladen.html

Uma listagem das referencias principais:

AFTP.List();
AFTP.DirectoryListing[i].ItemType = [ditFolder, ditFile...]
AFTP.DirectoryListing.Count
AFTP.DirectoryListing[i].FileName


No site em alemão, ele utiliza a pesquisa de subfolder usando TString.

Abraços
GOSTEI 0
Thiago Santana

Thiago Santana

26/05/2013

Inclua na seção uses: Windows

if DirectoryExists('C:\MEUSDOCS') then ShowMessage('O diretório existe') 
else ShowMessage('Não existe');
GOSTEI 0
Guilherme Wiethaus

Guilherme Wiethaus

26/05/2013

Ele quer FTP meu querido.
GOSTEI 0
Thiago Santana

Thiago Santana

26/05/2013

Basta ao invés do caminho local passar o endereço do FTP!
GOSTEI 0
POSTAR