div*_*nci 0 .net c# directoryinfo fileinfo
如何检查FileInfo对象是否是DirectoryInfo的后代?
public bool IsFileDescendantOfDirectory(
FileInfo fileInfo,
DirectoryInfo directoryInfo)
{
}
Run Code Online (Sandbox Code Playgroud)
你可以走上父目录:
public static bool IsFileDescendantOfDirectory(FileInfo fileInfo, DirectoryInfo directoryInfo)
{
// https://connect.microsoft.com/VisualStudio/feedback/details/777308/inconsistent-behavior-of-fullname-when-provided-path-ends-with-a-backslash
string path = directoryInfo.FullName.TrimEnd(Path.DirectorySeparatorChar);
DirectoryInfo dir = fileInfo.Directory;
while (dir != null)
{
if (dir.FullName.TrimEnd(Path.DirectorySeparatorChar).Equals(path, StringComparison.OrdinalIgnoreCase))
return true;
dir = dir.Parent;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,你必须比较FullName,DirectoryInfo.Equals不能按预期工作,因为它只使用Object.Equals比较引用.