你正在使用的Go版本是什么(go version
)?
go 1.10.3 windows/amd64
这个问题在最新版本的Go中是否会重现?
是的
你正在使用的操作系统和处理器架构是什么(go env
)?
Windows 7, Core I7, x64
你做了什么?
filepath.Clean(\\somepath\dir\
)
你期望看到什么?\\somepath\dir
(根据文档,不应该有尾部斜杠)
你实际上看到了什么?\\somepath\dir\
(有尾部斜杠)
看起来问题出在开头的两个Windows斜杠上,其他情况都正常。
8条答案
按热度按时间pgvzfuti1#
以下是一些测试用例:
cotxawn72#
经过一些调查,我发现问题出在
volumeNameLen
函数上。我不知道为什么,但它将\\somepath\dir\
视为卷名。我不是WindowsMaven,但当我们谈论网络路径时,它只是机器名和共享文件夹。pgvzfuti3#
我确认,filepath.Clean不会从
\\somepath\dir\
中删除尾随反斜杠。我认为它应该这样做。我也不明白为什么我们不应该修复这个问题。@QtRoS 你想为此发送一个修复吗?https://golang.org/doc/contribute.html是如何贡献的。
Alex
cotxawn74#
是的,我一定会尽快修复它!
kkih6yb85#
https://golang.org/cl/137055提到了这个问题:
path/filepath: fix Windows-specific Clean bug
xriantvc6#
https://golang.org/cl/163077提到了这个问题:
path/filepath: revert "fix Windows-specific Clean bug"
eoxn13cs7#
https://golang.org/cl/163078提到了这个问题:
[release-branch.go1.12] path/filepath: revert "fix Windows-specific Clean bug"
a0x5cqrl8#
由于CL被还原而重新开放。但是请查看#30307,它认为至少在某些情况下,这种建议的更改是不正确的。