UnauthorizedAccessException не может разрешить Каталог. Отказ GetFiles [дубликат]

Я использовал их в качестве статических переменных для функции. Например, учитывая следующий код C:

int fn(int i)
{
    static f = 1;
    f += i;
    return f;
}

я могу реализовать функцию так же в Python:

def fn(i):
    fn.f += i
    return fn.f
fn.f = 1

Это определенно попало бы в конец "злоупотреблений" спектра.

22
задан yanckst 27 September 2017 в 13:23
поделиться

2 ответа

Чтобы получить контроль на желаемом уровне, вам, вероятно, следует исследовать один каталог за раз, а не все дерево. Следующий метод заполняет данный IList всеми файлами, найденными в дереве каталогов, кроме тех, к которым у пользователя нет доступа:

// using System.Linq
private static void AddFiles(string path, IList<string> files)
{
    try
    {
        Directory.GetFiles(path)
            .ToList()
            .ForEach(s => files.Add(s));

        Directory.GetDirectories(path)
            .ToList()
            .ForEach(s => AddFiles(s, files));
    }
    catch (UnauthorizedAccessException ex)
    {
        // ok, so we are not allowed to dig into that directory. Move on.
    }
}
19
ответ дан 29 November 2019 в 05:00
поделиться

В .NET 4 это стало намного проще, см. http://msdn.microsoft.com/en-us/library/dd997370 .aspx

3
ответ дан 29 November 2019 в 05:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: