在使用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

09-11 19:57