如何获得相对路径的根目录

时间:2018-12-20 13:10:25

标签: go path

我需要在相对路径中提取第一个目录的名字。

我知道我可以去做

relPath := "a/b/c/file.so"
splitPath := strings.Split(relPath, string(os.PathSeparator))
rootDirName := splitPath[0]

有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

如果您要问是否有一种方法可以使用1个标准Go功能:我不知道。

另一种方法是:

relPath := "a/b/c/file.so"
i := strings.Index(relPath, string(os.PathSeparator))
rootDirName := relPath[:i]

或者如果路径完全不包含/

relPath := "a/b/c/file.so"
i := strings.Index(relPath, string(os.PathSeparator))
rootDirName := ""
if i != -1 {
    rootDirName = relPath[:i]
}         

这样做的好处是不必拆分整个字符串,因此在较长的路径上可能会更快一些。

相关问题