在 Go 中,是否可以获取路径的根目录以便
foo/bar/file.txt
返回 foo
?我知道路径/文件路径,但是
package main
import (
"fmt"
"path/filepath"
)
func main() {
parts := filepath.SplitList("foo/bar/file.txt")
fmt.Println(parts[0])
fmt.Println(len(parts))
}
打印 foo/bar/file.txt
和 1
而我期望的是 foo
和 3
。
最佳答案
只需使用 strings.Split()
:
s := "foo/bar/file.txt"
parts := strings.Split(s, "/")
fmt.Println(parts[0], len(parts))
fmt.Println(parts)
输出(在 Go Playground 上尝试):
foo 3
[foo bar file.txt]
注意:
如果你想按当前操作系统的路径分隔符分割,使用os.PathSeparator
作为分隔符:
parts := strings.Split(s, string(os.PathSeparator))
filepath.SplitList()
将多个连接的路径拆分为单独的路径。它不会将一个路径拆分为文件夹和文件。例如:
fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
输出:
On Unix: [/a/b/c /usr/bin]
关于go - 在GO中获取路径的第一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618967/