Go 使用反斜杠分隔符将独立于底层操作系统的路径与标准库连接起来

Go 使用反斜杠分隔符将独立于底层操作系统的路径与标准库连接起来,go,Go,允许使用底层操作系统的路径分隔符连接路径(基本上是Windows上的\,其他地方的/) 无论实际运行的操作系统是什么,是否有办法强制使用Windows路径分隔符将路径与Go标准库连接起来?否,而不是与标准库的包连接。你必须改用 如果您确实依赖于的“副作用”(例如,必要时添加分隔符,调用Clean()等),那么最简单的方法是调用filepath.Join(),然后用反斜杠替换斜杠,例如使用 请注意,replace all方法之所以有效,是因为斜杠/是一个保留字符,不能出现在除分隔文件夹和文件之外的

允许使用底层操作系统的路径分隔符连接路径(基本上是Windows上的
\
,其他地方的
/


无论实际运行的操作系统是什么,是否有办法强制使用Windows路径分隔符将路径与Go标准库连接起来?

否,而不是与标准库的包连接。你必须改用

如果您确实依赖于的“副作用”(例如,必要时添加分隔符,调用
Clean()
等),那么最简单的方法是调用
filepath.Join()
,然后用反斜杠替换斜杠,例如使用

请注意,replace all方法之所以有效,是因为斜杠
/
是一个保留字符,不能出现在除分隔文件夹和文件之外的名称中。有关详细信息,请参阅


请参阅相关信息。

为什么要这样做?如果您是在Linux/任何非windows OS for windows中开发,交叉编译将为您处理此问题,就像交叉编译时,
filepath.Join()
将使用目标操作系统分隔符,而不是构建操作系统分隔符一样。@adrio我正在为现有的SOAP服务创建一个客户端,我对它没有任何影响,远程服务只接受Windows路径。好的,听起来合法。我想知道这是否只是对交叉编译的误解。