satbr Posted April 13, 2015 at 11:01 PM Report Share #581177 Posted April 13, 2015 at 11:01 PM (edited) Boa noite, Estou aqui com um quebra cabeças que não consigo solucionar se alguém puder ajudar agradecia. Estou a fazer uma pequena aplicação em c# que deve servir para procurar uma determinada pasta (indicada pelo utilizador) dentro de um directoria com várias sub directorias num servidor. O problema é que a aplicação só está a pesquisar na raiz ou seja na primeira directoria pois não corre as várias sub directorias. Eis o meu código: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { string filepath = string.Format("C:\\TESTE\\{0}", textBox1.Text, SearchOption.AllDirectories); System.Diagnostics.Process prc = new System.Diagnostics.Process(); prc.StartInfo.FileName = filepath; prc.Start(); } } } A pasta C:\\TESTE\\ tem algumas subdirectorias mas a aplicação só abre a directoria que está imediatamente dentro de c:\\TESTE\\. Qual será o problema? De notar que em vez de teste mais tarde quero colocar o caminho de rede do servidor qualquer coisa como: \\vgst\clientes, neste caso coloco o caminho assim? Obrigado, Edited April 14, 2015 at 12:56 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
nelsonr Posted April 14, 2015 at 08:15 AM Report Share #581186 Posted April 14, 2015 at 08:15 AM Boas, no titulo falas sobre procura mas no código não tens nada relacionado com procura. Nessa primeira linha no button_click, estás a formatar uma string, usando o primeiro parametro, mas o segundo parametro não faz nada ai. E porque razão estás a usar o Process? Precisas de uma função recursiva. O que podes fazer é criar uma função chamada pesquisa, onde passas dois parametros, a pasta inicial e a pasta a pesquisar. Ai dentro pesquisas as directorias existentes na pasta indicada. Passas pelas directorias todas e voltas a chamar a função de pesquisa, indicando como primeiro parametro a pasta atual. Dessa forma passas por todas as pastas e subpastas existenes. Link to comment Share on other sites More sharing options...
satbr Posted April 14, 2015 at 08:49 AM Author Report Share #581190 Posted April 14, 2015 at 08:49 AM (edited) Algo assim? public void GetSubDirectories() { string root = @"C:\teste"; string[] subdirectoryEntries = Directory.GetDirectories(root); foreach (string subdirectory in subdirectoryEntries) LoadSubDirs(subdirectory); } private void LoadSubDirs(string dir) { Console.WriteLine(dir); string[] subdirectoryEntries = Directory.GetDirectories(dir); foreach (string subdirectory in subdirectoryEntries) { LoadSubDirs(subdirectory); } } Edited April 14, 2015 at 12:56 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
nelsonr Posted April 14, 2015 at 08:55 AM Report Share #581193 Posted April 14, 2015 at 08:55 AM Será algo assim, mas convem passares o nome da pasta que procuras. Nâo é esse o teu objectivo? Link to comment Share on other sites More sharing options...
satbr Posted April 14, 2015 at 09:38 AM Author Report Share #581196 Posted April 14, 2015 at 09:38 AM Será algo assim, mas convem passares o nome da pasta que procuras. Nâo é esse o teu objectivo? Sim, ou seja aquilo que é inserido na textbox. Mas neste código não estou a ver onde vou colocar o texto que é inserido na textbox podes ajudar sff? Funciona com espaços entre palavras ou não? este código fica dentro do button1_Click ou basta chamar a função? Obrigado, Link to comment Share on other sites More sharing options...
satbr Posted April 16, 2015 at 03:46 PM Author Report Share #581388 Posted April 16, 2015 at 03:46 PM Não estou a conseguir mesmo...... Precisava aqui de uma mãozinha sff. Obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now