我有一种情况,我想检查特定路径是否位于特定目录内。我的第一直觉是做类似的事情filepath.HasPrefix(filepath.Clean(path), dir)但该程序filepath.HasPrefix被记录为仅出于历史原因而存在。我会通过使用获得相同的效果strings.HasPrefix,还是我遗漏了什么?
3 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
你没有遗漏任何东西,看看来源:
// HasPrefix exists for historical compatibility and should not be used.
func HasPrefix(p, prefix string) bool {
return strings.HasPrefix(p, prefix)
}
只要使用strings.HasPrefix(p, prefix)直接。
红颜莎娜
TA贡献1842条经验 获得超12个赞
虽然您将获得与 相同的功能strings.HasPrefix
,但它通常不起作用。filepath.HasPrefix
不推荐使用是有原因的,它的方法也应该被视为不推荐使用。
考虑filename=/foo/bar
和prefix=/fo
。这通过了strings.HasPrefix
测试,但显然bar
不在/fo
.
正确的方法是从整体上比较每个目录名称。
- 3 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消