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