Gateway_man Geschrieben 8. Mai 2009 Geschrieben 8. Mai 2009 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 Zitieren
Der Kleine Geschrieben 8. Mai 2009 Geschrieben 8. Mai 2009 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. Zitieren
mepp Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 (bearbeitet) 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 2009 von mepp c#!=vb *rolleyes* Zitieren
Gateway_man Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 bringt mir rein gar nichts sry. Aber der würde sofort bei der ersten pfadverweigerung aus der schleife aussteigen. Zitieren
mepp Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 is ja egal solang das programm net abschmiert kannste ja da weitermachen wo es aufgehört hat Zitieren
Gateway_man Geschrieben 6. Juni 2009 Autor Geschrieben 6. Juni 2009 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. Zitieren
TDM Geschrieben 8. Juni 2009 Geschrieben 8. Juni 2009 Dann mach doch das Try in die Schleife... Zitieren
Gateway_man Geschrieben 8. Juni 2009 Autor Geschrieben 8. Juni 2009 (bearbeitet) Und das soll gehn :confused:. Da bin ich ja mal gespannt werds gleich ma testen. Geht auch nicht Bearbeitet 8. Juni 2009 von Gateway_man Zitieren
0815FIA Geschrieben 8. Juni 2009 Geschrieben 8. Juni 2009 Probier mal dein Next in nen finally hinter das catch zu schreiben. Zitieren
TDM Geschrieben 8. Juni 2009 Geschrieben 8. Juni 2009 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)? Zitieren
0815FIA Geschrieben 8. Juni 2009 Geschrieben 8. Juni 2009 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. Zitieren
Gateway_man Geschrieben 8. Juni 2009 Autor Geschrieben 8. Juni 2009 (bearbeitet) 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 2009 von Gateway_man Zitieren
TDM Geschrieben 9. Juni 2009 Geschrieben 9. Juni 2009 Probier mal DirectoryInfo.GetDirectories(). Da dürften keine Systemordner dabei sein. Zitieren
Gateway_man Geschrieben 9. Juni 2009 Autor Geschrieben 9. Juni 2009 hm klingt interessant bin ja mal gespannt, werds heut im laufe des tages mal ausprobieren. Schonmal danke im vorraus Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.