📜  Golang 中的 filepath.Clean()函数示例

📅  最后修改于: 2021-10-24 13:01:10             🧑  作者: Mango

在 Go 语言中, path包用于以斜杠分隔的路径,例如 URL 中的路径。 Go 语言中的filepath.Clean()函数用于通过纯词法处理返回与指定路径等效的最短路径名。而且这个函数是在path包下定义的。在这里,您需要导入“path/filepath”包才能使用这些功能。

此函数迭代地应用以下规则,直到无法进行进一步处理:

  • 它将多个 Separator 元素替换为单个元素。
  • 如果指定的路径为空字符串,则返回字符串“.”。
  • 它消除了每个 .路径名元素(当前目录)。
  • 它消除了每个内部 .. 路径名元素(父目录)以及它之前的非 .. 元素。
  • 它消除了以根路径开头的 .. 元素:即,假设分隔符为 ‘/’,将路径开头的“/..”替换为“/”。

句法:

func Clean(path string) string

这里,’path’ 是指定的路径。

返回值:它通过纯词法处理返回与指定路径等效的最短路径名。

示例 1:

// Golang program to illustrate the usage of
// filepath.Clean() function
  
// Including the main package
package main
  
// Importing fmt and path/filepath
import (
    "fmt"
    "path/filepath"
)
  
// Calling main
func main() {
  
    // Calling the Clean() function
    fmt.Println(filepath.Clean("/GFG/./../Geeks"))
    fmt.Println(filepath.Clean("GFG/../Geeks"))
    fmt.Println(filepath.Clean("..GFG/./../Geeks"))
    fmt.Println(filepath.Clean("gfg/../../../Geek/GFG"))
}

输出:

/Geeks
Geeks
Geeks
../../Geek/GFG

示例 2:

// Golang program to illustrate the usage of
// filepath.Clean() function
  
// Including the main package
package main
  
// Importing fmt and path/filepath
import (
    "fmt"
    "path/filepath"
)
  
// Calling main
func main() {
  
    // Calling the Clean() function
    fmt.Println(filepath.Clean(""))
    fmt.Println(filepath.Clean("."))
    fmt.Println(filepath.Clean("///"))
    fmt.Println(filepath.Clean("/.//"))
    fmt.Println(filepath.Clean("/./"))
    fmt.Println(filepath.Clean(":/"))
}

输出:

.
.
/
/
/
: