我试图确定一条路是否是另一条路的孩子。
我已经尝试过:
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的孩子?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)