Veröffentlicht 8. Mai 200916 j hi leute hab schon sehr oft das phenomen gesehn das ich auf beispielsweise root von partitionen kein zugriff habe. Ich hatte vor bestimmte Dateien auf in diesem Falle der D:\ Partition zu suchen. Jedoch bekomme ich sofort eine Fehlermeldung wie folgt: http://img156.imageshack.us/img156/7933/fehler.png Was ich auch noch wissen wollte, gibt es eine möglichkeit dem programm zu sagen das er bei der for each schleife nicht bei einem Fehler abbricht sondern die Datei beispielsweise überspringt. Wünsche noch nen schönen Abend, simon
8. Mai 200916 j Mach doch vorher eine Überprüfung des Namen und nur weiter, wenn es nicht gerade die Systemfiles bzw. der Papierkorb ist. Der dürfte auch nicht gehen.
5. Juni 200916 j Papierkorb geht... Egal, warum nicht einfach in einen try-catch block packen wenn du keine Lust hast jedem dateinamen zu überprüfen? In etwa so: try { foreach (string dir in Directory.GetDirectories(rootDirectory)) { Application.DoEvents(); if (dir.IndexOf("System Volume Info") == -1) scanFiles2(dir); //recursive call dircount++; } } catch (UnauthorizedAccessException) { /*Hier haste keinen Zugriff auf den Ordner und kannst entsprechend darauf reagieren*/ } Achja richtig, du wolltest es ja in VB haben - Entschuldigung. Vielleicht hilft es dir in verbindum hiermit trotzdem weiter : Try...Catch...Finally-Anweisung (Visual Basic) Bearbeitet 5. Juni 200916 j von mepp c#!=vb *rolleyes*
5. Juni 200916 j Autor bringt mir rein gar nichts sry. Aber der würde sofort bei der ersten pfadverweigerung aus der schleife aussteigen.
5. Juni 200916 j is ja egal solang das programm net abschmiert kannste ja da weitermachen wo es aufgehört hat
6. Juni 200916 j Autor ja wenns nur eben so wäre aber er springt aus der schleife und fängt von vorne an sodass er immer bei dem selben ordner aussteigt.
8. Juni 200916 j Autor Und das soll gehn :confused:. Da bin ich ja mal gespannt werds gleich ma testen. Geht auch nicht Bearbeitet 8. Juni 200916 j von Gateway_man
8. Juni 200916 j Probier mal dein Next in nen finally hinter das catch zu schreiben. Das wird nicht gehen, falsche Schachtelung von Kontrollstrukturen... Kommt die Exception bei Directory.GetDirectories(rootDirectory)?
8. Juni 200916 j Und das soll gehn :confused:. Da bin ich ja mal gespannt werds gleich ma testen. Geht auch nicht hä? zeig mal den code bitte. normalerweise müsste das funzen, wenn du try und catch in der schleife schreibst. @tdm: du hast recht, denkfehler.
8. Juni 200916 j Autor hier wäre ein bsp. : For each foundfile as string in my.computer.filesystem.getfiles("root", "alle Subdirectorys durchsuchen", "suchpattern") try "ausführung" catch ex as Exaption "Fehlerbehandlung" end try next Der fehler tritt bei dem kopf der for each schleife auf auf(bei getfiles, dort weißt man mich darauf hin das ich keine rechte besitzte um den jeweiligen Ordner zu durchsuchen). Jedoch wenn außerhalb der Schleife noch ein try catch mache klapts auch nicht da wie gesagt das programm dann die schleife beendet und ich von vorne suchen kann . Bearbeitet 8. Juni 200916 j von Gateway_man
9. Juni 200916 j Probier mal DirectoryInfo.GetDirectories(). Da dürften keine Systemordner dabei sein.
9. Juni 200916 j Autor hm klingt interessant bin ja mal gespannt, werds heut im laufe des tages mal ausprobieren. Schonmal danke im vorraus
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.