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

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

概述如何有效地检查,如果一个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))

总结

以上是内存溢出为你收集整理的如何有效地检查,如果一个path是C#中的另一个path的孩子?全部内容,希望文章能够帮你解决如何有效地检查,如果一个path是C#中的另一个path的孩子?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存