Rekursive Funktion benötigt

Swebble

Mitglied
Hallo zusammen,

ich scheitere gerade bei einer scheinbar trivialen Problemstellung.
Und zawr möchte ich in einem Verzeichnis alle Unterverzeichnisse ermitteln, also auch die Unterverzeichnisse der Unterverzeichnisse und so weiter.

Ich meine da muss eine rekursive Funktion her, aber irgendwie hab ich grade Denkblockade.

Wäre nett wenn mir einer auf die Sprünge helfen könnte.

MfG

Sebastian
 
Du meinst - grob - so ?
Code:
public findeUnterVerzeichnisse(string verzeichnis)
{
   foreach(string unterverz in unterverzeichnisse)
         findeUnterVerzeichnisse(unterverz);
}
 
Ja genau.

Ich hab es jetzt so geköst:

Code:
private void GetSubDirectories(DirectoryInfo info)
{
	try
	{
				
		foreach(DirectoryInfo i in info.GetDirectories("*"))
		{
			if(!i.Name.Equals("System Volume Information"))
			{
				this.list.Add(i);
				this.label3.Text = i.FullName;
				GetSubDirectories(i);
			}
		}
	}
}

Jetzt habe ich aber ein anderes Problem. Wie prüfe ich ab, bevor ich mir die Unterverzeichnisse hole, ob ich überhaupt Zugriff auf das Verzeichnis habe?

Ich habe wie man in dem Code sieht rausgefunden, dass ich auf System Volume Information keinen Zugriff habe und habe es über den Namen ausgeschlossen. Aber das kann ja auch je nach Benutzerrechten auch bei anderen Verzeichnissen der Fall sein.

Danke schon mal

Sebastian
 
Wie prüfe ich ab, bevor ich mir die Unterverzeichnisse hole, ob ich überhaupt Zugriff auf das Verzeichnis habe?
Sollte das nicht eine Exception auslösen, wenn man keine Zugriffsrechte auf das Verzeichnis hat? Ich würde diese Exception(s) abfangen und entsprechend reagieren.
 
Aber bitte nicht generell abfangen und sagen "Das geht nicht."
Zum Beispiel schließt du sonst Fälle dieser Art auch mit ein und alle Read-Only-Verzeichnisse gibt's nicht mehr...
 
Zurück