temat teraz do zamknięcia udało mi się dojść do sukcesu gdyby ktoś potrzebował wrzucam kod
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 = "";
}
private void Search(string nrindeksu, string sciezka)
{
if (sciezka == @"")
{
sciezka = @"scieżka katalogu głównego";
string indeks = "";
if (indeks.Length == 0) indeks = nrindeksu;
foreach (string katalog in Directory.GetDirectories(sciezka, "*" + indeks.Split('-')[0] + "*", SearchOption.TopDirectoryOnly))
{
sciezka = katalog;
scanDirectory(sciezka, indeks, 2);
break;
}
}
else
{
string indeks = textBox2.Text;
foreach (string katalog in Directory.GetDirectories(sciezka, "*" + indeks.Split('-')[1] + indeks.Split('-')[2] + "*", SearchOption.TopDirectoryOnly))
{
int licznik = 0;
sciezka = katalog;
scanDirectory(sciezka, indeks, ++licznik);
break;
}
}
}
private void scanDirectory(string sciezka, string indeks, int licznik)
{
string[] wynik = indeks.Split('-');
string nrid = "";
string nrindeksu = indeks;
string nowaSciezka = "";
Search(nrindeksu, sciezka);
if (wynik.GetUpperBound(0) == (licznik - 1))
{
System.Diagnostics.Process.Start("explorer.exe", sciezka);
return;
}
try
{
for (int i = 0; i <= licznik; i++)
{
if (i == licznik) nrid += wynik[i];
else nrid += wynik[i] + "-";
}
}
catch (Exception ex)
{
return;
}
foreach (string katalog in Directory.GetDirectories(sciezka, nrid + "*", SearchOption.TopDirectoryOnly))
{
nowaSciezka = katalog;
break;
}
if (nowaSciezka.Length == 0)
{
System.Diagnostics.Process.Start("explorer.exe", sciezka);
return;
}
if (nowaSciezka != sciezka)
{
scanDirectory(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;
int licznik = 0;
scanDirectory(sciezka, indeks, licznik);
}
}
}
Jedyne co mi pozostało to refactoring kodu :D ^^