How can I get the last folder from a path string?

后端 未结 3 425
伪装坚强ぢ
伪装坚强ぢ 2020-12-11 00:12

I have a directory that looks something like this:

C:\\Users\\me\\Projects\\

In my application, I append to that path a given project name:

相关标签:
3条回答
  • 2020-12-11 00:39
    string path = @"C:\Users\me\Projects\myProject";
    string result = System.IO.Path.GetFileName(path);
    

    result = myProject

    0 讨论(0)
  • 2020-12-11 00:47

    If you're a Linq addict like me, you may enjoy this. Works regardless of the termination of the path string.

    public static class PathExtensions
    {
        public static string GetLastPathSegment(this string path)
        {
            string lastPathSegment = path
                .Split(new string[] {@"\"}, StringSplitOptions.RemoveEmptyEntries)
                .LastOrDefault();
    
            return lastPathSegment;
        }
    }
    

    Example Usage:

    lastSegment = Paths.GetLastPathSegment(@"C:\Windows\System32\drivers\etc");
    lastSegment = Paths.GetLastPathSegment(@"C:\Windows\System32\drivers\etc\");
    

    Output: etc

    0 讨论(0)
  • 2020-12-11 00:55

    You can do:

    string dirName = new DirectoryInfo(@"C:\Users\me\Projects\myProject\").Name;
    

    Or use Path.GetFileName like (with a bit of hack):

    string dirName2 = Path.GetFileName(
                  @"C:\Users\me\Projects\myProject".TrimEnd(Path.DirectorySeparatorChar));
    

    Path.GetFileName returns the file name from the path, if the path is terminating with \ then it would return an empty string, that is why I have used TrimEnd(Path.DirectorySeparatorChar)

    0 讨论(0)
提交回复
热议问题