如何使用golang在Windows上获取正确的文件基名

问题描述 投票:1回答:1
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返回错误答案。那么我怎样才能获得正确的文件基名。

windows go
1个回答
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))
}
© www.soinside.com 2019 - 2024. All rights reserved.