如何使用Golang在Windows上获取正确的文件库名称

package main

import (
    "fmt"
    "path"
)

func main() {
    p := "./p/p"
    q := ".\\q\\q"
    fmt.Println(path.Base(p))
    fmt.Println(path.Base(q))
}

I run it on Windows, and output is:

p
.\q\q

I think path.Base return incorrect answer. So how can I get correct file base name.

Platform-specific path manipulation should be performed with the path/filepath package instead of path. From the documentation:

Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.

The filepath package uses either forward slashes or backslashes, depending on the operating system. To process paths such as URLs that always use forward slashes regardless of the operating system, see the path package.

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    p := "./p/p"
    q := ".\\q\\q"
    fmt.Println(filepath.Base(p))
    fmt.Println(filepath.Base(q))
}