ExeptionHandling und Weiter.....?

Hallo,

Ich hoffe ihr könnt mir Helfen.....
In dem Code-Beispiel unten vesuche ich Dateien in einem bestimmten Pfad zu suchen. und diese mit dem kompletten Pfad in eine ListBox einzutragen.
Das funktioniert soweit auch. Allerdings wenn ich auf der Ebene "C:\" oder "D:\" suchen lasse, kommt e zur einer Ausnahme "Der Zugriff auf den Pfad D:\System Volume Information wurde verweigert" -> UnauthorizedAccessException

wie sage ich ihm das er weitermachen soll wenn er auf eine Exception trifft?

Code:
            try
            {
                string[] fileNames = Directory.GetFiles(Path, Ext, SearchOption.AllDirectories);
                for (int i = 0; i < fileNames.Length; i++)
                {
                    listBox1.Items.Add(fileNames[i]);
                    Fcounter++;
                }
            }
            catch (Exception er)
            {
                MessageBox.Show("error");
            }

Danke im Vorraus

mfg Marc
 
Zuletzt bearbeitet:
Hi,

ich glaub nicht, dass du auf diese Art ein Chance hast.
Die Exception wird in GetFiles geworfen und die Methode ist damit zu ende.
Um Verzeichnisse und deren Unterverzeichnisse zu durchsuchen solltest du besser eine Methode nutzten, die du rekusiv aufrufst.
Darin kannst du dann die Excption fangen und mit dem nächsten Directory fortfahren.

Und mal ne kurze Frage noch:
für was ist dieser Fcounter? Die Anzahl der Dateien?
Du weißt aber, dass du mit FileNames.Length und listBox1.Items.Count an das selbe Ergebnis kommst? ;)
 
Hi,

Und welche Methode kann ich rekursiv aufrufen?

PS: Fcounter = Anzahl der Dateien :) ist ein kleines überbleibsel von vergangenen versuchen...

mfg Marc
 
Zuletzt bearbeitet:
du holst dir halt von deinem root alle Folder. und für jeden folder rufst du deine dateien ab.

quasi

void getfolder(string folder)
{
getfiles(folder);

foreach (string f in System.IO.Directory.GetDirectories(folder))
{
getfolder(f);
}
}

void getfiles(string folder)
{
foreach (string f in System.IO.Directory.GetFiles(folder))
{
System.Diagnostics.Debug.WriteLine(folder + "\\" + f);
}
}

meinst vom prinzip sicher das?


PS: bitte beachtet die groß und kleinschreibung und haltet euch an die netiquette. :(
 
Ist das Problem nun geklärt oder nicht?
Wenn ja bitte auf "Erledigt" setzen.
Oder du schreibst, wo du noch Probleme hast.
Aber wie von NRFi "sauber" formatiert geschrieben, musst du die Methode schon selbst schreiben.
 

Neue Beiträge

Zurück