golang:跨平台路径。

【字号: 日期:2024-02-03浏览:36作者:雯心
如何解决golang:跨平台路径。?

我看到“问题”在哪里。在golang-nuts上的讨论为我提供了提示,该提示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:foobar.exe'): `, filepath.Dir(`c:foobar.exe`))}

在Windows上:

filepath.Dir('a/b/c'): abfilepath.Dir('c:foobar.exe'): c:foo解决方法

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

package mainimport ( 'fmt' 'path')func main() { fmt.Println(`path.Dir('a/b/c'): `,path.Dir('a/b/c')) fmt.Println(`path.Dir('c:foobar.exe'): `,path.Dir(`c:foobar.exe`))}

这个输出

path.Dir('a/b/c'): a/bpath.Dir('c:foobar.exe'): .

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

c:foo

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

相关文章: