Dann gehen wir mal vom fast-worst-case aus, dass der TE n ganzes Laufwerk durch seine Funktion jagen will. Ich bin's mal bei mir durchgegangen. Bei mir reichen 2 Ausnahmetypen, um C:\ durchzuackern. Type1 ist bei Du-hast-hier-nix-zu-suchen-Fällen, wie von MrMo angegeben wurde. Type2 wurde bei mir notwendig, als die Funktion auf eine Verknüpfung zu einem nicht-mehr-existenten Verzeichnis stieß:
Die string-Arrays sollten später in den
@exc-jdbi: Hab's mal mit Attributen probiert. Bei nem Papierkorb-Ordner mit den Attributen
VB.NET-Quellcode
- Dim Verzeichnisnamen() As String = Nothing, Dateinamen() As String = Nothing
- Try
- Verzeichnisnamen = IO.Directory.GetDirectories(Pfad)
- Dateinamen = IO.Directory.GetFiles(Pfad)
- Catch tp_ExceptionType1 As UnauthorizedAccessException
- Return
- Catch tp_ExceptionType2 As IO.DirectoryNotFoundException
- Return
- End Try
Die string-Arrays sollten später in den
For Each
-Schleifen wiederverwendet werden, da ein wiederholter GetDirectories
-Aufruf später in der Funktion das komplette C:\-Durchgehen zeitlich bei mir ver9fachte. Von einem erneuten GetFiles
-Aufruf ganz zu schweigen.@exc-jdbi: Hab's mal mit Attributen probiert. Bei nem Papierkorb-Ordner mit den Attributen
IO.FileAttributes.System
, IO.FileAttributes.Hidden
und IO.FileAttributes.Directory
bleibt der Debugger hängen, bei anderen Verzeichnissen mit gleichen Attributen gab's keine Probleme. Aber Verzeichnisattribute standen noch nicht in meinen Programmierplänen, vielleicht kann da noch jemand mit often-used-code weiterhelfen.Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.