How to check if directory 1 is a subdirectory of dir2 and vice versa

后端 未结 11 1642
北海茫月
北海茫月 2020-12-31 04:07

What is an easy way to check if directory 1 is a subdirectory of directory 2 and vice versa?

I checked the Path and DirectoryInfo helperclasses but found no system-r

11条回答
  •  春和景丽
    2020-12-31 04:17

    In response to the first part of the question: "Is dir1 a sub-directory of dir2?", this code should work:

    public bool IsSubfolder(string parentPath, string childPath)
    {
        var parentUri = new Uri(parentPath);
        var childUri = new DirectoryInfo(childPath).Parent;
        while (childUri != null)
        {
            if(new Uri(childUri.FullName) == parentUri)
            {
                return true;
            }
            childUri = childUri.Parent;
        }
        return false;
    }
    

    The URIs (on Windows at least, might be different on Mono/Linux) are case-insensitive. If case sensitivity is important, use the Compare method on Uri instead.

提交回复
热议问题