Open In App

filepath.Clean() Function in Golang With Examples

Last Updated : 10 May, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

In Go language, path package used for paths separated by forwarding slashes, such as the paths in URLs. The filepath.Clean() function in Go language used to return the shortest path name equivalent to the specified path by purely lexical processing. Moreover, this function is defined under the path package. Here, you need to import the “path/filepath” package in order to use these functions.

This function applies the Below rules iteratively until no further processing can be done:

  • It Replaces multiple Separator elements with a single one.
  • If the specified path is an empty string, it returns the string “.”.
  • It eliminates each . path name element (the current directory).
  • It eliminates each inner .. path name element (the parent directory) along with the non-.. element that precedes it.
  • It eliminates .. elements that begin a rooted path: that is, replace “/..” by “/” at the beginning of a path, assuming Separator is ‘/’.

Syntax:

func Clean(path string) string

Here, ‘path’ is the specified path.

Return Value: It returns the shortest path name equivalent to the specified path by purely lexical processing.

Example 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"))
}


Output:

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

Example 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(":/"))
}


Output:

.
.
/
/
/
:


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads