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
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.
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*
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.
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
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.
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
0815FIA Geschrieben 8. Juni 2009 Geschrieben 8. Juni 2009 Probier mal dein Next in nen finally hinter das catch zu schreiben.
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)?
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.
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
TDM Geschrieben 9. Juni 2009 Geschrieben 9. Juni 2009 Probier mal DirectoryInfo.GetDirectories(). Da dürften keine Systemordner dabei sein.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden