package main
import (
"fmt"
"path"
)
func main() {
p := "./p/p"
q := ".\\q\\q"
fmt.Println(path.Base(p))
fmt.Println(path.Base(q))
}
我在Windows上运行它,输出是:
p
.\q\q
我认为path.Base返回错误答案。 那么我怎样才能获得正确的文件库名称。
答案 0 :(得分:5)
应使用path/filepath
包而不是path
执行特定于平台的路径操作。来自文档:
包文件路径实现了以与目标操作系统定义的文件路径兼容的方式操作文件名路径的实用程序例程。
filepath包使用正斜杠或反斜杠,具体取决于操作系统。要处理路径,例如始终使用正斜杠的URL而不考虑操作系统,请参阅路径包。
package main
import (
"fmt"
"path/filepath"
)
func main() {
p := "./p/p"
q := ".\\q\\q"
fmt.Println(filepath.Base(p))
fmt.Println(filepath.Base(q))
}