在 Linux 环境下,可以使用 Go 语言的 path/filepath 包来判断两个路径是否相等。以下代码实现了一个名为 isPathEqual 的函数,它接收两个路径字符串作为参数,并返回一个布尔值表示这两个路径是否相等。

import (
    'path/filepath'
)

func isPathEqual(path1, path2 string) bool {
    absPath1, err := filepath.Abs(path1)
    if err != nil {
        return false
    }
    absPath2, err := filepath.Abs(path2)
    if err != nil {
        return false
    }
    return absPath1 == absPath2
}

该函数首先使用 filepath.Abs() 函数将输入的路径转换为绝对路径。如果转换过程中发生错误,则返回 false。然后,比较两个绝对路径是否相等,如果相等则返回 true,否则返回 false

使用示例:

path1 := "/home/user/documents/file.txt"
path2 := "/home/user/Documents/file.txt"

isEqual := isPathEqual(path1, path2)

fmt.Println(isEqual) // 输出 true

注意:

  • 该函数使用 filepath.Abs() 函数将路径转换为绝对路径,因此会考虑符号链接等因素。
  • 如果输入的路径不存在,则 filepath.Abs() 函数会返回错误。
  • 如果需要忽略大小写比较路径,可以使用 strings.ToLower()strings.ToUpper() 函数将路径转换为小写或大写后再进行比较。
Go语言判断Linux路径是否相等 - 完整代码示例

原文地址: https://www.cveoy.top/t/topic/mvW6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录