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函数来执行程序。