Пропуск директории/файла, если к нему нет доступа, или случилась любая другая ошибка (D)

Есть такой код:

import std.file;
import std.exception;


void listdir(string dirpath) {
    foreach(string fname; dirEntries(dirpath, SpanMode.depth, false))
     {
         try {
            if (fname.isDir)
                listdir(fname);
            writeln(fname);
         }
         catch (Throwable) {
             continue;
         }
    }
}

void main() {
    listdir("/");
}

Проблема в том, что исполнение прекращается на любой ошибке. Можно ли пропускать директории и файлы при возникновении ошибки, не прекращая исполнение?


Ответы (1 шт):

Автор решения: Александра Михеева

Решено: надо поменять SpanMode.depth на SpanMode.shallow

→ Ссылка