C# Best way to get folder depth for a given path?

后端 未结 7 2160
野趣味
野趣味 2021-02-19 18:29

I\'m working on something that requires traversing through the file system and for any given path, I need to know how \'deep\' I am in the folder structure. Here\'s what I\'m cu

7条回答
  •  野的像风
    2021-02-19 19:10

    I'm always a fan the recursive solutions. Inefficient, but fun!

    public static int FolderDepth(string path)
    {
        if (string.IsNullOrEmpty(path))
            return 0;
        DirectoryInfo parent = Directory.GetParent(path);
        if (parent == null)
            return 1;
        return FolderDepth(parent.FullName) + 1;
    }
    

    I love the Lisp code written in C#!

    Here's another recursive version that I like even better, and is probably more efficient:

    public static int FolderDepth(string path)
    {
        if (string.IsNullOrEmpty(path))
            return 0;
        return FolderDepth(new DirectoryInfo(path));
    }
    
    public static int FolderDepth(DirectoryInfo directory)
    {
        if (directory == null)
            return 0;
        return FolderDepth(directory.Parent) + 1;
    }
    

    Good times, good times...

提交回复
热议问题