
ディレクトリ ツリーを再帰的にトラバースするプログラムでは、シンボリック リンクが親ディレクトリを指しているときに無限ループに陥るのを避けるために、シンボリック リンク (および Windows のジャンクション ポイント) をどう処理するかを把握する必要があります。明らかな 2 つのオプションは次のとおりです。
シンボリックリンクを完全にスキップします。
先に進んでそれらに従ってください。ただし、アクセスしたすべてのディレクトリを追跡し、無限ループに陥りそうになったらスキップしてください。
最も一般的/期待される/好ましい選択肢はどれですか?
答え1
閲覧のみの場合はフォローしてください。
しかし、無限ループは不要だと指定しました...
シンボリックリンクが親ディレクトリを指しているときに無限ループに陥るのを避けるため
幅優先方式で再帰的に検索する場合は、次に従ってください。深さ優先方式の場合は、スキップしてください。
ファイルサイズを数える場合はスキップしてください。
記録を残すことは最適化につながることが多い、実装ではなく。もちろん、実装したほうが良いでしょう。