在使用mono将.net应用程序移植到Linux时,我注意到其IO.GetDirectories
的实现遵循Linux上的符号链接(symbolic link)(当我的程序到达/home/clement/svn/obrowser/tutorial/distrib/tutorial/distrib/tutorial/distrib/tutorial/distrib/tutorial/distrib/tutorial/distrib/tutorial/distrib/tutorial/distrib/tutorial/distrib
时,问题变得很明显)。
我在mono的网站上找不到任何关于此行为的文档,除了一个很小的论坛帖子外,其他任何地方都找不到。
您知道一种防止IO.GetDirectories
跟随符号链接(symbolic link)的解决方法吗?
最佳答案
您可以检查File.GetAttributes,符号链接(symbolic link)将具有ReparsePoint属性,我使用Windows符号链接(symbolic link)对它进行了测试,并在ubuntu 10.10上进行了测试。
但是,这不会阻止GetDirectories递归枚举,您必须自己进行递归。
如果您不需要跨平台支持,则可能需要查看Mono.Unix.UnixDirectoryInfo。