nauka c# - przeszukiwanie folderów

0
patrykkxdd napisał(a):
private void Search(string nrindeksu, string sciezka)
        {
        if(sciezka!="")
        {
            sciezka = @"Ścieżka do katalogu głównego";
        }

Doszedłem do takiego rozwiązania i nie wiem co dalej :/ pomóżcie ładnie proszę ;)

Obecnie ustawiasz ścieżkę na katalog główny, gdy ta NIE jest pusta. Prawdopodobnie chodziło Ci o warunek odwrotny - gdy jest pusta.

0
Sarrus napisał(a):
patrykkxdd napisał(a):
private void Search(string nrindeksu, string sciezka)
        {
        if(sciezka!="")
        {
            sciezka = @"Ścieżka do katalogu głównego";
        }

Doszedłem do takiego rozwiązania i nie wiem co dalej :/ pomóżcie ładnie proszę ;)

Obecnie ustawiasz ścieżkę na katalog główny, gdy ta NIE jest pusta. Prawdopodobnie chodziło Ci o warunek odwrotny - gdy jest pusta.

ta trochę się pomyliłem o dziwo w kodzie miałem dobrze napisane :D

0

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 ^^

1 użytkowników online, w tym zalogowanych: 0, gości: 1