Go语言程序:从绝对路径获取文件名


我们将使用Go语言的filepath和strings函数从绝对路径中获取文件名。绝对路径以根目录开头,包含所有中间目录。在第一种方法中,我们将使用filepath包的函数;在第二个示例中,我们将使用strings包的函数。

方法一:使用filepath包

此程序使用path/filepath包中的filepath.Base函数提取文件的基名(即不包含目录路径的文件名)。然后在控制台上显示提取的文件名。

语法

filepath.Base()

使用path/filepath包中的**filepath.Base**函数来确定文件路径的基名。基名是指文件路径的最后一部分,不包括目录和任何分隔符。

算法

  • **步骤1** - 创建一个名为main的包,并在程序中声明fmt(格式化包)和path/filepath包,其中main产生可执行代码,fmt帮助格式化输入和输出。

  • **步骤2** - 创建一个main函数,在这个函数中创建一个file_path变量,并将文件路径赋值给它。

  • **步骤3** - 使用filepath.Base函数从上面分配给变量的路径中获取文件名。

  • **步骤4** - 使用fmt.Println()函数在控制台上打印文件名,其中ln表示换行。

示例

在这个例子中,我们将使用filepath.Base()函数来获取文件名。

package main
import (
   "fmt"
   "path/filepath"
)

func main() { 
   file_path := "/path/to/myfile.txt" //assign the absolute path
   file_name := filepath.Base(file_path)  //use this built-in function to obtain filename
   fmt.Println(" The file Name from the absolute path is:", file_name)
}

输出

The file Name from the absolute path is: myfile.txt

方法二:使用strings.TrimRight和strings.Split函数

此程序使用strings.TrimRight函数删除文件路径中的任何尾部斜杠。使用Split函数将文件路径分割成不同的部分,并用斜杠分隔。然后访问分割后的文件路径的最后一个元素来检索文件名。

语法

func Split(str, sep string) []string

Split()函数用于通过提供的分隔符分割字符串。此函数位于strings包中,它接受要分割的字符串以及分隔符作为参数。然后,该函数返回最终的字符串数组作为结果。

strings.TrimRight

使用TrimRight函数删除字符串中指定的字符以及任何尾随空格。

算法

  • **步骤1** - 创建一个名为main的包,并在程序中声明fmt(格式化包)和strings包,其中main产生可执行代码,fmt帮助格式化输入和输出。

  • **步骤2** - 创建一个main函数,在这个函数中创建一个名为file的变量,并将绝对路径赋值给它。

  • **步骤3** - 在这一步中,使用TrimRight函数对file变量进行操作,以使用“/”作为输入删除任何尾随斜杠。

  • **步骤4** - 使用Split函数获取文件的最后一个组件。

  • **步骤5** - 在控制台上打印文件名。

  • **步骤6** - 使用fmt.Println()函数执行打印语句,其中ln表示换行。

示例

在这个例子中,我们将使用strings.Split和strings.TrimRight函数来执行程序。

package main
import (
   "fmt"
   "strings"
)

func main() {
   file := "/path/to/myfile.txt"  //assignthe variable an absolute path
   file_name := strings.TrimRight(file, "/")
   file_name = strings.Split(file_name, "/")[len(strings.Split(file_name, "/"))-1]
   fmt.Println("The File name from the absolute path is:", file_name) //print the filename
}

输出

The file Name from the absolute path is: myfile.txt

结论

我们通过两个例子执行了从绝对路径获取文件名的程序。在第一个例子中,我们使用了filepath.Base函数;在第二个例子中,我们使用了TrimRight和split函数来执行程序。

更新于:2023年2月22日

9K+ 次浏览

开启你的职业生涯

完成课程,获得认证

开始学习
广告