ehh.... já tás aqui ....
Fiz isso hoje na aula.....
Tens de usar recursividade.....
A logica é seguinte:
- Inseres a raiz da directoria na treeview
Código:
treeView1.Nodes.Add(@"C:\");
- Depois no LOOP que usares para ir buscar a informação de pasta fazes
Código:
treeView1.Nodes[0].Nodes.Add([COLOR=Navy]FuncaoRecursiva[/COLOR](CaminhoAteAPasta,NomePasta));
- Depois a função que vais defenir (FuncaoRecursiva) tem de devolver um objecto do tipo TreeNode , dentro dessa função vais fazer o seguinte:
- Vais buscar a informação das pastas que estão dentro dessa pasta (Aproveitas a string CaminhoAteAPasta que passaste na função)
- Depois crias um objecto do tipo TreeNode e no construtor passas o nome da pasta com que entraste na função
Código:
TreeNode treeNode1 = new TreeNode(NomePasta);
- Voltas a fazer historia do LOOP para ver as pasta e dentro do LOOP e metes
Código:
treeNode1.Nodes.Add([COLOR=Navy]FuncaoRecursiva[/COLOR](CaminhoAteAPasta,NomePasta));
- E no final retornas o objecto
- Não te esquecas que tens de actualizar a string CaminhoAteAPasta, senão vais entrar em ciclo infinito
E basicamente é só isso que tens de fazer......
Dois erros que me ocurreram, como existe pasta que não tens permissão para entrar comvem que tenhas um try catch para corrigires essas pasta, o outro erro que me ocorreu foi na string NomeDaPasta não ter '/' no fim .... depois tentava aceder a directorias com pastas coladas e obviamente não consegue abrir.....
Se o programa demorar uns minutos a abrir é normal... já o do stor demorava...
Existem outras maneiras de fazer.... podes por exemplo aproveitar os eventos da treeview para abrir conforme os clicks nas pastas....