微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何有效地检查,如果一个path是C#中的另一个path的孩子?

我试图确定一条路是否是另一条路的孩子。

我已经尝试过:

if (Path.GetFullPath(A).StartsWith(Path.GetFullPath(B)) || Path.GetFullPath(B).StartsWith(Path.GetFullPath(A))) { /* ... do your magic ... */ }

像在如何检查如果一个path是另一个path的孩子? 岗位

但它不起作用。 例如,如果我编写“C: files”和“C: files baaa”,代码认为“C: files baaa”是“C: files”的子项,如果不是,则是只有C :. 当我尝试了很长的path和一些孩子,这个问题真的很重。

从另一个进程正在使用的文件中读取

如何检测Windowslogin事件?

我如何才能知道给线程的实际时间片?

使用Windows C#应用程序将应用程序限制为32位体系结构

C# – 使用OnStart方法调用一个线程

我也尝试过“如果包含”……但是在所有追逐中仍然没有真正的工作

我能做什么?

谢谢!

如何强制Dns.GetHostAddresses .NET方法查询DNS或DNScaching?

在iis中的IP地址和域名限制通过PowerShell

如何在Windows服务中模拟时调用net.pipe(命名pipe道)WCF服务

如何获得VB.NET中Caps Lock的当前状态?

如何强制Windows重新连接到networking驱动器

尝试这个:

if (!Path.GetFullPath(A).TrimEnd(Path.DirectorySeparatorChar).Equals(Path.GetFullPath(B).TrimEnd(Path.DirectorySeparatorChar),StringComparison.CurrentCultureIgnoreCase) && (Path.GetFullPath(A).StartsWith(Path.GetFullPath(B) + Path.DirectorySeparatorChar,StringComparison.CurrentCultureIgnoreCase) || Path.GetFullPath(B).StartsWith(Path.GetFullPath(A) + Path.DirectorySeparatorChar,StringComparison.CurrentCultureIgnoreCase))) { /* ... do your magic ... */ }

C:files不是一个File ,它是一个Directory 。所以你可以试试这个:

DirectoryInfo A = new DirectoryInfo(Path.GetFullPath("firstPath")); DirectoryInfo B = new DirectoryInfo(Path.GetFullPath("secondpath")); if( B.Parent.FullName == A.FullName || A.Parent.FullName == B.FullName )

如果您不想寻找直接的亲子关系,您可以尝试:

if (Directory .GetDirectories(A.FullName,"*",SearchOption.AllDirectories) .Contains(B.FullName) || Directory .GetDirectories(B.FullName,SearchOption.AllDirectories) .Contains(A.FullName))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐