Kezdőoldal » Számítástechnika » Programozás » Üdv! Szeretnék C#-ban egy...

Anonymus 0402 kérdése:

Üdv! Szeretnék C#-ban egy olyan kereső algoritmust írni, ami a felhasználó által megadott (pl. :D:\képek) helyen keres ("*. Jpg"-ket). A problémám az, hogy az én algoritmusom, nem keres csak az almappákban, a főkönyvtárba nem. Mi lehet a gond?

Figyelt kérdés
Szeretnék keresést indítani, ahol a felhasználó adja meg, hogy hol történjen a keresés és hogy mit keressen. Pl. : D:\képek, amin belül vannak képek, meg könyvtárak (pl. : D:\képek\régi, D:\képek\új, D:\képek\fantasy), amiken belül még több kép van, a keresési feltétel, ebben az esetben például "*. Jpg", Minden fájl kiírásra kerül innen D:\képek\régi, D:\képek\új, D:\képek\fantasy, kivétel az a pár kép, ami magában a főkönyvtárban (D:\képek) van.
2013. febr. 12. 13:27
 1/7 anonim ***** válasza:
Az hogy rossz az algoritmusod (amit megsúgok nyelvfüggetlen), nem megy bele az almappákba. Mivel semmilyen kódot nem írtál ide (se pszeudo, se konkrét) elég nehéz bármi mást mondani rá.
2013. febr. 12. 13:37
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

foreach (string dir in Directory.GetDirectories(@"E:\Filek"))

{

foreach (string files in Directory.GetFiles(dir, "*.avi", SearchOption.AllDirectories))

{

richTextBox1.Text = richTextBox1.Text + files + "\n";

}

}

Ez lenne a kódom. a probléma remélem érthető!

2013. febr. 12. 13:51
 3/7 iostream ***** válasza:
Nem értem, miért gondoltad, hogy a főkönyvtárban fogsz keresni, ha egyből a főkönyvtárban lévő könyvtárakba mész bele.
2013. febr. 12. 14:26
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
M1, már megoldódott, lehet hogy rosszul fogalmaztam. A lényeg az lett volna, hogy olyan keresést kell írni, ami megnézi a megadott helyen a fájlokat, és az azon belül lévő összes almappában is. Nem tudom máshogy leírni. De azért köszi a próbálkozást! :D
2013. febr. 13. 06:55
 5/7 anonim ***** válasza:

Kíváncsi vagyok hogy oldottad meg, mindenesetre itt egy szerintem szép megoldás, még rendezi is a fájlokat név szerint:


DirectoryInfo dir = new DirectoryInfo(@"E:\Filek");

richTextBox1.Text = String.Join("\n", dir.GetFiles("*.avi", SearchOption.AllDirectories).Select(s => s.Name).OrderBy(o => o).ToArray());

2013. febr. 13. 08:33
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
Hát az enyém nagyon bonyolult ehhez képest, és ez ahogy nézem, tökéletes, de nem lehet ugyanezt rendezés nélkül megcsinálni? Plusz, hogy ne csak a fájl neveket írja ki hanem a teljes elérési utat is?
2013. febr. 13. 15:45
 7/7 anonim ***** válasza:

Természetesen bármit lehet, vedd ki az OrderBy részt, és a Name helyett a FullName kell neked:


DirectoryInfo dir = new DirectoryInfo(@"E:\Filek");

richTextBox1.Text = String.Join("\n", dir.GetFiles("*.avi", SearchOption.AllDirectories).Select(s => s.FullName).ToArray());

2013. febr. 13. 16:23
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!