use*_*594 5 .net c# windows path
我试图确定一条路径是否是另一条路径的子路径。
我已经尝试过:
if (Path.GetFullPath(A).StartsWith(Path.GetFullPath(B)) ||
Path.GetFullPath(B).StartsWith(Path.GetFullPath(A)))
{ /* ... do your magic ... */ }
Run Code Online (Sandbox Code Playgroud)
但它不起作用。例如,如果我写 "C:\files" 和 "C:\files baaa" 代码认为 "C:\files baaa" 是 "C:\files" 的孩子,如果不是,它是只有 C:。当我尝试长路径时,问题真的很严重,有很多孩子。
我也试过“如果包含\”......但仍然没有真正在所有的追逐中工作
我能做什么?
谢谢!
尝试这个:
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 ... */ }
Run Code Online (Sandbox Code Playgroud)