递归遍历目录树的程序需要弄清楚如何处理符号链接(和/或 Windows 上的连接点),以避免在符号链接指向父目录时陷入无限循环。两个明显的选择是:
完全跳过符号链接。
继续并跟随它们,但要跟踪所有访问过的目录,并在即将陷入无限循环时跳过。
哪一个是最常见/预期/首选的选择?
答案1
如果您只是浏览,请关注。
但是,您指定您不想要无限循环......
避免在符号链接指向父目录时陷入无限循环
如果您以广度优先的方式进行递归搜索,请遵循。如果以深度优先的方式进行递归搜索,请跳过。
如果您正在计算文件大小,请跳过。
跟踪通常是一种优化,而不是实现。当然,你最好有它。