webForumDet fria alternativet

Hitta en speciell undermapp

.NET

6 svar · 1 656 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag försöker att hitta en speciell undermapp. Jag har försökt med rekusiv funktion men jag misslyckas helt. Mappen jag letar efter heter "Steam". Jag kodar i C#.
Tacksam om någon vill peka på rätt väg.
(jag kan ju hårdkoda men det tycker jag är fel). :stud

Medlem sedan feb. 200711 inlägg
#2

Det finns en funktion för detta. Du talar bara om för den var sökningen ska starta, vad katalogen du letar efter heter och att du ska söka i alla underkataloget. Du får tillbaka en array med kataloger som hittats.

Directory.GetDirectories("C:\", "Steam", SearchOption.AllDirectories)

Medlem sedan mars 20011 880 inlägg
#3

Nu ser det då ut så här:

try
            {
                Application.DoEvents();
                string[] directories = Directory.GetDirectories(@"C:\", "Steam", SearchOption.AllDirectories);

                foreach (string directory in directories)
                {
                    textBox1.Text += Environment.NewLine + directory;
                }

            }
            catch (Exception fel)
            {
                textBox1.Text = fel.Message;
            }

Men jag fångar upp ett error
Åtkomst till sökvägen C:\Windows\SysWOW64\config\systemprofile\Start-meny nekas

Hur löser jag det?

Medlem sedan okt. 2006224 inlägg
#4

Om du startar appen i Elevated Mode (kör som administratör) borde det funka. Om du inte vill att den ska söka mappar där du inte har rättigheter får du skriva om koden så den kollar rättigheter/åtkomst.

Medlem sedan juni 20014 290 inlägg
#5

Du kanske kan begränsa dina sökningar.

Är det ett program så sök i program mappen eller om det är användardata så sök i användarens hemkatalog.

På så sätt så slipper du söka igenom kataloger som kan vara ointressanta att söka igenom, och du snabbar upp sökningen rejält om du hoppar över windows katalogen.

Medlem sedan mars 20011 880 inlägg
#6

Hej och tack för era svar.
Vad jag försöker att bygga är en dynamisk modmanage. Att jag ville börja från c:\ beror på att man kan ju inte vara säker på att programmet är installerat i "normalpathen".
Tydligen så får jag kanske vara ganska så nöjd med som det ser ut nu. :D

Medlem sedan juli 2003555 inlägg
#7

D: då? :)

332 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
205 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
203 ms — ändringar (db)