Fórum Listar no treeView diretorios do ftp conforme for expandindo. #533868
07/10/2015
0
Boa tarde. Como ir listando os diretórios de um ftp no treeview conforme eu for expandindo?
Tenho essas duas funções mas ela lista todos de uma vez. Assim fica lento.Então o ideal seria ir carregando conforme eu for expandindo.
Fico no aguardo.
Obrigado.
Tenho essas duas funções mas ela lista todos de uma vez. Assim fica lento.Então o ideal seria ir carregando conforme eu for expandindo.
function TdlgPedidosExternosSincronizar.lista(IdFTP: TIdFTP; port: integer;
host, user, senha: string; TreeView: TTreeView): boolean;
var
Node: TTreeNode;
begin
Node := nil;
TreeView.Items.Clear;
IdFTP.host := host;
IdFTP.port := port;
IdFTP.Username := user;
IdFTP.Password := senha;
try
IdFTP.Connect;
listaSub(IdFTP, '/', Node, TreeView);
finally
IdFTP.DisconnectNotifyPeer;
end;
end;
function TdlgPedidosExternosSincronizar.listaSub(IdFTP: TIdFTP;
diretorio: string; NodeRaiz: TTreeNode; TreeView: TTreeView): boolean;
var
I: Integer;
ListItems: TIdFTPListItems;
Node: TTreeNode;
Nome: string;
begin
if IdFTP.Connected then
begin
Node := NodeRaiz;
IdFTP.ChangeDir(diretorio);
IdFTP.List;
ListItems := TIdFTPListItems.Create;
ListItems.Assign(IdFTP.DirectoryListing);
for I := 0 to ListItems.Count - 1 do
begin
Nome := ListItems.Items[I].LocalFileName;
NodeRaiz := TreeView.Items.AddChild(Node, Nome);
if(ListItems.Items[I].ItemType = ditDirectory) then
begin
listaSub(IdFTP, diretorio + Nome + '/', NodeRaiz, TreeView);
NodeRaiz := Node;
end;
end;
ListItems.Free;
end;
end;
Fico no aguardo.
Obrigado.
Marcelo Urso
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)