go 路径/文件路径:Clean不会从Windows卷名中删除尾随反斜杠

8wtpewkr  于 4个月前  发布在  Go
关注(0)|答案(8)|浏览(98)

你正在使用的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斜杠上,其他情况都正常。

pgvzfuti

pgvzfuti1#

以下是一些测试用例:

[https://paste.ofcode.org/KcUi8HKPrhLCcMmMET356T](https://paste.ofcode.org/KcUi8HKPrhLCcMmMET356T)
cotxawn7

cotxawn72#

经过一些调查,我发现问题出在volumeNameLen函数上。我不知道为什么,但它将\\somepath\dir\视为卷名。我不是WindowsMaven,但当我们谈论网络路径时,它只是机器名和共享文件夹。

pgvzfuti

pgvzfuti3#

我确认,filepath.Clean不会从\\somepath\dir\中删除尾随反斜杠。我认为它应该这样做。我也不明白为什么我们不应该修复这个问题。
@QtRoS 你想为此发送一个修复吗?https://golang.org/doc/contribute.html是如何贡献的。
Alex

cotxawn7

cotxawn74#

是的,我一定会尽快修复它!

kkih6yb8

kkih6yb85#

https://golang.org/cl/137055提到了这个问题:path/filepath: fix Windows-specific Clean bug

xriantvc

xriantvc6#

https://golang.org/cl/163077提到了这个问题:path/filepath: revert "fix Windows-specific Clean bug"

eoxn13cs

eoxn13cs7#

https://golang.org/cl/163078提到了这个问题:[release-branch.go1.12] path/filepath: revert "fix Windows-specific Clean bug"

a0x5cqrl

a0x5cqrl8#

由于CL被还原而重新开放。但是请查看#30307,它认为至少在某些情况下,这种建议的更改是不正确的。

相关问题