Dobra prawie działa ale znowu mam problem bo nie wiem jak muszę zmienić ścieżkę żeby program przestał się zapętlać bo na chwilę obecną tylko umiem podać ścieżkę z ręki. Kod wygląda tak:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.CodeDom.Compiler;
using System.Configuration;
namespace WindowsFormsApp3
{
public partial class Szukaj : Form
{
public Szukaj()
{
InitializeComponent();
//textBox2.Text = "0187-200-079";
}
private void Search(string nrindeksu)
{
string sciezka = @"Ścieżka do katalogu głównego";
string indeks = ""; //"0023-012-01-02"
if (indeks.Length == 0) indeks = nrindeksu;
// textBox1.Text += indeks.Split('-')[0];
foreach (string katalog in Directory.GetDirectories(sciezka, "*" + indeks.Split('-')[0] + "*", SearchOption.TopDirectoryOnly))
{
// textBox1.Text += Environment.NewLine + katalog;
sciezka = katalog;
skanujKatalog(sciezka, indeks, 2);
System.Diagnostics.Process.Start("explorer.exe", sciezka);
break;
}
}
private void skanujKatalog(string sciezka, string indeks, int licznik)
{
string[] wynik = indeks.Split('-');
string nrid = "";
string nrindeksu = indeks;
string nowaSciezka = "";
Search(nrindeksu);
if (wynik.GetUpperBound(0) == (licznik - 1))
{
return;
}
try
{
for (int i = 0; i <= licznik; i++)
{
if (i == licznik) nrid += wynik[i];
else nrid += wynik[i] + "-";
}
}
catch (Exception)
{
System.Diagnostics.Process.Start("explorer.exe", sciezka);
return;
}
foreach (string katalog in Directory.GetDirectories(sciezka, nrid + "*", SearchOption.TopDirectoryOnly))
{
textBox1.Text += katalog + Environment.NewLine;
nowaSciezka = katalog;
break;
}
if (nowaSciezka.Length == 0)
{
System.Diagnostics.Process.Start("explorer.exe", sciezka);
return;
}
if (nowaSciezka != sciezka)
{
skanujKatalog(nowaSciezka, indeks, ++licznik);
}
else
{
System.Diagnostics.Process.Start("explorer.exe", sciezka);
}
}
private void otworz_Click(object sender, EventArgs e)
{
string sciezka = "";
string indeks = textBox2.Text;
//string nrindeksu = "";
int licznik = 0;
skanujKatalog(sciezka, indeks, licznik);
//Search(nrindeksu);
}
}
}
Ilość komentarzy to po prostu metoda prób i błędów aby osiągnąć sukces więc na komentarze nie zwracajcie uwagi :D ^^