可以使用filepath包的函数来判断路径B是否是路径A的子路径。
具体做法是,先用filepath.Clean()函数对路径A和路径B进行规范化处理,然后用strings.HasPrefix()函数判断路径B是否以路径A开头。如果是,则说明路径B是路径A的子路径。
以下是示例代码:
import (
"path/filepath"
"strings"
)
func isSubPath(a, b string) bool {
a = filepath.Clean(a)
b = filepath.Clean(b)
return strings.HasPrefix(b, a)
}
调用方式如下:
if isSubPath("/path/to/dir", "/path/to/dir/subdir/file.txt") {
fmt.Println("Yes")
} else {
fmt.Println("No")
}