1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

explorer em c#

Discussão em 'Programação' iniciada por Nody, 11 de Outubro de 2008. (Respostas: 4; Visualizações: 1075)

  1. Nody

    Nody Power Member

    Boas pessoal, estou a construir um explorer em c# e estou com algumas dificuldades.

    A minha dúvida é a seguinte, de momento a minha aplicação vai buscar as directorias que tenho na raíz do c: mas ainda não dá para as abrir nem nada do género, apenas queria saber a melhor maneira de ter uma textbox onde tenho a directoria onde estou a navegar e ir actualizando-a conforme navego nas pastas ou nos discos.

    obrigado.
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Não sei :P

    Em princípio hás-de ter um evento qualquer que indique que a directoria mudou, certo? Ou um Click, o que quer que seja.
    Depois de o encontrares (nem que faças como eu e ponhas uma msgbox em cada um deles com o nome deles e testes mudar de directoria :D ), é só aplicares nesse evento um Text1.Text = DirList.Path ou coisa que o valha.

    Isto saiu muito mais "abstracto" do que querias, provavelmente, mas nunca mexi em C# e baseio-me completamente no que sei de VB6.
     
  3. Nody

    Nody Power Member

    para ir actualizando a directoria que está na textbox na qual estamos a navegar, existe algum método do género getcurrentdirectory? eu estou a usar esse e dá-me a directoria a partir de onde o programa está a correr.

    cumps
     
  4. dark_splinter

    dark_splinter Power Member

    é simples tu usas o

    na classe form defines uma variavel do tipo string que seja o caminho.... imaginemos.....

    Código:
    string caminho = @"c:\";
    Ou até podes usar directamente a propriadade text da tua textbox... que também é uma string....

    Depois crias um objecto do tipo DirectoryInfo...

    Código:
    DirectoryInfo directoria = new DirectoryInfo(caminho);
    Depois se quizeres aceder aos ficheiros fazes....
    Código:
    FileInfo[] ficheiro = directoria.GetFiles();
    e ficas neste momento com um array do tipo FileInfo com todos os ficheiro que tavam na directoria do "caminho".......

    Se quizeres aceder as pastas também a mesma coisa mas crias um array de objectos do tipo DirectoryInfo....
    Código:
    DirectoryInfo[] directorias = directoria.GetDirectories();
    agora é só correres os arrays..... pode usar por exemplo um foreach
    Para as pastas....
    Código:
         foreach (DirectoryInfo dirc in directorias)
                {
                    //Aqui a adicionas o codigo que queres, exemplo se quizeres por para uma listview
                   {AQUI O NOME DA TUA LIST VIEW}.Items.Add(new ListViewItem(dirc.Name));
                    
                }
    
    Para os ficheiros....
    Código:
    foreach (FileInfo fich in ficheiro)
                {
                 //Aqui a adicionas o codigo que queres, exemplo se quizeres por para uma listview
                   {AQUI O NOME DA TUA LIST VIEW}.Items.Add(new ListViewItem(fich.Name));  
    
                }
    
    Agora basta criares um evento que tens na listview chamado.....
    DoubleClick

    crias este evento .... e obtens o indice do item que foi clickado na tua listview
    Código:
    int indice = {AQUI O NOME DA TUA LIST VIEW}.SelectedIndices[0];
    Pronto e apartir daqui já sabes qual foi clickado ..... depois basta mudares a string caminho para caminho + {pasta que foi clickada} .... ou caso seja um ficheiro podes abrilo com o seguinte codigo....
    Código:
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
                            proc.EnableRaisingEvents = false;
                            proc.StartInfo.FileName = caminho + {AQUI O NOME DA TUA LIST VIEW}.Items[n].Text;
                            proc.Start();
     
  5. Nody

    Nody Power Member

    este já tinha conseguido resolver :P só fiquei com o problema do back - forward
     

Partilhar esta Página