Hallo, ich derzeit Unterverzeichnisse habe ich durch diesen Anruf wollte:UnauthorizedAccessException mit GetDirectories
foreach (DirectoryInfo dir in parent)
{
try
{
subDirectories = dir.GetDirectories().Where(d => d.Exists == true).ToArray();
}
catch(UnauthorizedAccessException e)
{
Console.WriteLine(e.Message);
}
foreach (DirectoryInfo subdir in subDirectories)
{
Console.WriteLine(subdir);
var temp = new List<DirectoryInfo>();
temp = subdir.GetDirectories("*", SearchOption.AllDirectories).Where(d => reg.IsMatch(d.Name)).Where((d => !d.FullName.EndsWith("TESTS"))).Where(d => !(d.GetDirectories().Length == 0 && d.GetFiles().Length == 0)).Where(d => d.GetFiles().Length > 3).ToList();
candidates.AddRange(temp);
}
}
foreach(DirectoryInfo dir in candidates)
{
Console.WriteLine(dir);
}
so jetzt mein Problem ist, dass meine endgültige Liste Kandidaten rief ich nichts bekommen, weil im einen Zugang Problem bekommen aufgrund eines von der Ordner namens lost + gefunden in meinem Unterverzeichnis Ordner im try Block. Ich versuchte mit Versuch und Fangen, um die Ausnahme zu behandeln, also konnte ich meine Überprüfungen tun, die ich eigentlich nicht über diesen Ordner interessiere und ich versuche, es gerade zu ignorieren, aber ich bin nicht sicher, wie man es aus meinen get Verzeichnissen heraussuchen sucht Gedanken? Ich habe bereits versucht, einen Filter mit. Wo ich jeden Ordner zu ignorieren, die den Ordnernamen, aber das hat nicht funktioniert entweder nur mein Programm auf den Namen des Ordners gestoppt.
Diese Frage bereits beantwortet werden, finden Sie folgendes: [link] (http://stackoverflow.com/questions/172544/ignore-folders-files-when- directory-getfiles-is-denied-access) –
dies ist für das abholen von dateien aber ich brauche verzeichnisse keine dateien – JPhillips
Hast du es mit 'Directory.EnumerateDirectories()' versucht? Es bietet ein bisschen mehr Flexibilität und ermöglicht es Ihnen, mindestens die Namen der gefundenen Verzeichnisse abzurufen. Leider führen versteckte Systemverzeichnisse wie 'lost + found' zu' UnauthorizedAccessException'. Stellen Sie sicher, dass Sie die Standardoption "SearchOption" verwenden, damit die Suche nicht automatisch in eines der untergeordneten Verzeichnisse wechselt. –