首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止IO.GetDirectories()跟踪符号链接

阻止IO.GetDirectories()跟踪符号链接
EN

Stack Overflow用户
提问于 2011-04-25 14:10:17
回答 2查看 763关注 0票数 3

在使用mono将.net应用程序移植到Linux时,我注意到它的IO.GetDirectories实现遵循Linux上的符号链接(当我的程序到达/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跟随符号链接的解决方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-25 22:10:46

你可以检查File.GetAttributes,符号链接会有ReparsePoint属性,我用windows symlink和ubuntu10.10测试过了。

但是,这并不能阻止GetDirectories递归枚举,您必须自己进行递归。

如果你不需要跨平台的支持,你可能想看看Mono.Unix.UnixDirectoryInfo

票数 5
EN

Stack Overflow用户

发布于 2013-10-18 03:05:09

如果将对Mono.Posix的引用添加到项目中,则以下代码将测试路径是否指向符号链接:

代码语言:javascript
复制
Mono.Unix.UnixSymbolicLinkInfo i = new Mono.Unix.UnixSymbolicLinkInfo( path );
if( i.IsSymbolicLink ) ...

您还可以测试其他文件类型(如FifoSocketBlockDevice等)。使用

代码语言:javascript
复制
switch( i.FileType )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5775739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档