Wydaje się, że powinno to zostać trochę bardziej elegancko rozwiązane. W praktyce oznacza to, że na podanych wyżej funkcjach nie można polegać. Bo taki katalog/plik może trafić się wszędzie.
Przy czym nie jestem pewien czy bardziej nie chodzi tutaj o katalogi niż o pliki. Tego nie sprawdzałem.
Moja wersja zwracająca wszystkie pliki w w drzewie katalogu i pomijająca te do których nie mamy praw:
public static void GetFiles(DirectoryInfo a_dir, List<string> a_files) { try { foreach (var file in a_dir.GetFiles()) a_files.Add(file.FullName); } catch { System.Console.WriteLine("dir ex: {0}", a_dir.FullName); } try { foreach (var dir in a_dir.GetDirectories()) GetFiles(dir, a_files); } catch (UnauthorizedAccessException) { System.Console.WriteLine("dir2 ex: {0}", a_dir.FullName); } }
Brak komentarzy:
Prześlij komentarz