Listar Diretório do FTP no Delphi: IdFTP

Veja nesta Quick irei continuar o exemplo do Client FTP, neste momento vamos implementar dois método importantes na nossa aplicação

Olá galera, nesta Quick Tips, irei continuar o exemplo do Client FTP, neste momento vamos implementar dois método importantes na nossa aplicação. Localize a seção Private da sua Unit, e vamos a declaração dos mesmos.

 

Antes, vamos adicionar algumas imagens no nosso TImageList, adicione apenas 3, a sua escolha, pois vamos usar estas logo nestes métodos, para quem esta com dúvidas você deve antes selecionar o TreeView, e ir na propriedades Images, e logo em seguida selecionar o Imagelist1, para ver o efeito que vamos mostrar logo abaixo.

  private { Private declarations } procedure ListarArquivos(NodePai : TTreeNode; Diretorio: String); function CaminhoCompleto: String;  

Como nossos métodos declarados, vamos usar a combinação de Teclas CTRL + Shift + C, para implementarmos estes.

 

Implementando o método CaminhoCompleto

  function TFrmPrincipal.CaminhoCompleto: String; var    NoRaiz:TTreeNode;    S : String; begin    if TreeView1.Selected = nil then       Exit;    S := '';    NoRaiz := TreeView1.Selected;    if not (NoRaiz = TreeView1.Selected.GetLastChild) then       While NoRaiz.Parent <> nil do       begin          NoRaiz := NoRaiz.Parent;          S := S + NoRaiz.Text + '/';       end;    Result := s + TreeView1.Selected.Text; end;    

Implementando o método ListarArquivos

  procedure TFrmPrincipal.ListarArquivos(NodePai: TTreeNode; Diretorio: String); var    I, J: Integer;    Node : TTreeNode; begin    Try       IdFTP1.Connect;       IdFTP1.ChangeDir(Diretorio);       IdFTP1.List(nil);       if NodePai <> Nil then          if NodePai.HasChildren then             NodePai.DeleteChildren;       for I := 0 to IdFTP1.DirectoryListing.Count - 1 do       begin          Node := TTreeNode.Create(TreeView1.Items);          Node.Text := IdFTP1.DirectoryListing.Items[I].FileName;          if (Node.Text = '.') or (Node.Text = '..') then             Continue;          if NodePai = Nil then             Node := TreeView1.Items.Add(Nil, Node.Text)          else             Node := TreeView1.Items.AddChild(NodePai, Node.Text);          if IdFTP1.DirectoryListing.Items[I].ItemType = ditDirectory then             Node.ImageIndex := 0          else             if IdFTP1.DirectoryListing.Items[I].ItemType = ditFile then             begin                Node.ImageIndex := 1;                Node.SelectedIndex := 2;             end;       end;    finally       IdFTP1.Disconnect;    end; end;  

Fico por aqui ate à próxima Quick Tips. Aguarde a próxima parte.

 

Um abraço.

Artigos relacionados