golang:跨平台路径。

我想path.Dir()在Unix和Windows上使用特定于平台的目录。请看一下代码:


package main


import (

    "fmt"

    "path"

)


func main() {

    fmt.Println(`path.Dir("a/b/c"): `, path.Dir("a/b/c"))

    fmt.Println(`path.Dir("c:\foo\bar.exe"): `, path.Dir(`c:\foo\bar.exe`))

}

这个输出


path.Dir("a/b/c"):  a/b

path.Dir("c:\foo\bar.exe"):  .

我想第二次打电话给path.Dir()(windows)类似的东西


c:\foo

是否可以告诉path.dir()我在Windows上运行的程序使用Windows分隔符?还是应该始终将反斜杠转换\ 为正斜杠(/)?这里首选的策略是什么?


潇湘沐
浏览 249回答 1
1回答

30秒到达战场

我看到“问题”在哪里。提示path.Dir()始终使用/并且filepath.Dir()是用于依赖于平台的操作的函数。package mainimport (    "fmt"    "path/filepath")func main() {    fmt.Println(`filepath.Dir("a/b/c"): `, filepath.Dir("a/b/c"))    fmt.Println(`filepath.Dir("c:\foo\bar.exe"): `, filepath.Dir(`c:\foo\bar.exe`))}在Windows上:filepath.Dir("a/b/c"):  a\bfilepath.Dir("c:\foo\bar.exe"):  c:\foo
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go