在 Go 中,是否可以获取路径的根目录,以便foo/bar/file.txt返回foo? 我知道路径/文件路径,但是package mainimport ( "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。
2 回答
隔江千里
TA贡献1906条经验 获得超10个赞
只需使用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]
婷婷同学_
TA贡献1844条经验 获得超8个赞
请注意,如果您只需要第一部分,strings.SplitN我的测试至少要快 10 倍:
package main
import "strings"
func main() {
parts := strings.SplitN("foo/bar/file.txt", "/", 2)
println(parts[0] == "foo")
}
https://golang.org/pkg/strings#SplitN
- 2 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消