我有 2 个字符串 - dir1 和 dir2,我需要检查一个是否是另一个的子目录。我尝试使用 Contains 方法:
dir1.contains(dir2);
但如果目录具有相似的名称,例如 - c:\abc
和 c:\abc1
,这也会返回 true > 不是子目录,打赌返回真。一定有更好的方法。
最佳答案
DirectoryInfo di1 = new DirectoryInfo(dir1);
DirectoryInfo di2 = new DirectoryInfo(dir2);
bool isParent = di2.Parent.FullName == di1.FullName;
或者在允许嵌套子目录的循环中,即 C:\foo\bar\baz 是 C:\foo 的子目录:
DirectoryInfo di1 = new DirectoryInfo(dir1);
DirectoryInfo di2 = new DirectoryInfo(dir2);
bool isParent = false;
while (di2.Parent != null)
{
if (di2.Parent.FullName == di1.FullName)
{
isParent = true;
break;
}
else di2 = di2.Parent;
}
关于c# - 给定完整路径,检查路径是否是其他路径的子目录,否则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617320/