Программа, которая рекурсивно пересекает дерево каталогов, должна выяснить, что делать с символическими ссылками (и / или точками соединения в Windows), чтобы избежать бесконечного цикла, когда символическая ссылка указывает на родительский каталог. Два очевидных варианта:

  1. Пропустить символические ссылки полностью.

  2. Идите вперед и следуйте им, но следите за всеми посещенными каталогами и пропускайте каждый раз, когда он собирается совершить бесконечный цикл.

Какой самый распространенный / ожидаемый / предпочтительный выбор?

1 ответ1

0

Если вы просто просматриваете, следуйте.

Но вы указали, что не хотите бесконечных циклов ...

чтобы избежать зацикливания, когда символическая ссылка указывает на родительский каталог

Если вы ищете рекурсивный метод «в ширину», следуйте. В глубину-первый способ, пропустить.

Если вы подсчитываете размеры файлов, пропустите.

Отслеживание часто является оптимизацией, а не реализацией. Конечно, тебе лучше иметь это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .