2020-09-27 10:02:54 +08:00
|
|
|
package utils
|
|
|
|
|
|
2021-11-24 14:50:07 +08:00
|
|
|
// CleanPath 清理Path中的多余的字符
|
2020-09-27 10:02:54 +08:00
|
|
|
func CleanPath(path string) string {
|
|
|
|
|
l := len(path)
|
|
|
|
|
if l == 0 {
|
|
|
|
|
return "/"
|
|
|
|
|
}
|
|
|
|
|
result := []byte{'/'}
|
|
|
|
|
isSlash := true
|
|
|
|
|
for i := 0; i < l; i++ {
|
2021-11-24 15:01:06 +08:00
|
|
|
if path[i] == '?' {
|
|
|
|
|
result = append(result, path[i:]...)
|
|
|
|
|
break
|
|
|
|
|
}
|
2020-09-27 10:02:54 +08:00
|
|
|
if path[i] == '\\' || path[i] == '/' {
|
|
|
|
|
if !isSlash {
|
|
|
|
|
isSlash = true
|
|
|
|
|
result = append(result, '/')
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
isSlash = false
|
|
|
|
|
result = append(result, path[i])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return string(result)
|
|
|
|
|
}
|