Jump to content

Procurar uma pasta dentro de várias pastas


satbr
 Share

Recommended Posts

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 by apocsantos
geshi
Link to comment
Share on other sites

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

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 by apocsantos
geshi
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.