FlavioMacedo Posted March 24, 2017 Share Posted March 24, 2017 Bom dia a todos. O problema esta sendo o seguinte: Montei a aplicação onde devo apresentar a árvore de diretórios da maquina do cliente e estou colocando isto em um treeview porem ele sempre monta a árvore de diretório de onde a aplicação esta sendo executada. Preciso que esta árvore seja a da máquina cliente e não do servidor. Alguém poderia me ajudar com este problema? Meu código que monta a tabela de memória para mostrar o diretório esta assim: procedure TMainForm.DirTreeChange(Sender: TObject; Node: TUniTreeNode); var sr: TSearchRec; FileAttrs: Integer; theNode: TUniTreeNode; begin FileAttrs := faDirectory; if (Node.Level = 0) then exit; if (Node.Level = 1) then begin Ni1 := 'c:\' + Node.text; end; if (Node.Level = 2) then begin Ni1 := 'C:\' + Node.Parent.text + '\' + Node.text; end; if (Node.Level = 3) then begin Ni1 := 'C:\' + Node.Parent.Parent.text + '\' + Node.Parent.text + '\' + Node.text; end; ... ... ... if (Node.Level = 12) then begin Ni1 := 'C:\' + Node.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.Parent.text + '\' + Node.Parent.Parent.text + '\' + Node.Parent.text + '\' + Node.text; end; MemData_Diretorio.Close; MemData_Diretorio.Open; if FindFirst(Ni1 + '\*.*', FileAttrs, sr) = 0 then begin repeat if (sr.Attr and FileAttrs) = sr.Attr then begin if ((sr.name <> '.') and (sr.name <> '..')) then begin if Node.Level = 0 then begin theNode := DirTree.Items.AddChild(nil, sr.name); end else begin theNode := DirTree.Items.AddChild(Node, sr.name); end; theNode.HasChildren := True; end; end else begin MemData_Diretorio.Insert; MemData_Diretorioupdate.AsBoolean := false; MemData_DiretorioArquivo.asstring := sr.name; MemData_DiretorioModificacao.asstring := FormatDateTime('dd/mm/yy hh:mm:ss', FileDateToDateTime(sr.Time)); MemData_DiretorioTamanho.asstring := inttostr(sr.Size); MemData_Diretorio.Post; end; until FindNext(sr) <> 0; FindClose(sr); end; end; Agradeço a todas a ajudas. Obrigado Quote Link to comment Share on other sites More sharing options...
Nirlan Posted March 24, 2017 Share Posted March 24, 2017 Até aonde eu sei, o navegador não pode ter acesso ao disco rígido do cliente, por razões de segurança. Seria bom ver as opiniões dos outros colegas. Quote Link to comment Share on other sites More sharing options...
ricardolb Posted March 24, 2017 Share Posted March 24, 2017 Acho que a única maneira seria criar um aplicativo onde o cliente instalasse na máquina que repassasse essas informações para um webservice no seu servidor. Quote Link to comment Share on other sites More sharing options...
belo Posted March 25, 2017 Share Posted March 25, 2017 Sua aplicação roda em uma rede local, intranet? Se for, você pode substituir no seu código ( Ni1 := 'C:\' + ..) pelo caminho do servidor (\\Servidor\etc..) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.