Golang 从绝对路径获取文件名
我们将使用Golang的filepath和字符串函数来从绝对路径中获取文件名。绝对目录以根目录开头,并包括所有中间目录。在第一种方法中,我们将使用filepath包的函数,在第二个示例中,我们将使用strings包的函数。
方法1:使用filepath包
在此程序中,使用path/filepath包中的filepath.Base函数提取文件的基本名称,即不带目录路径的文件名。然后在控制台上显示提取的文件名。
语法
filepath.Base()
使用路径/文件路径包中的 filepath.Base 函数来确定文件路径的基本名称。文件路径的最后一部分(不包括目录和任何分隔符)被称为基本名称。
步骤
- 步骤1 - 在main包中创建并声明fmt(格式化包)和path/filepath包,用于在主要的可执行代码中进行格式化输入和输出。
-
步骤2 - 创建一个main函数,在该函数中创建一个file_path变量,并将路径赋值给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
方法2:使用 strings.TrimRight 和 strings.Split 函数
在此程序中,使用 strings.TrimRight 函数来删除文件路径中的尾部斜杠。使用 Split 函数将文件路径分割为不同的部分,并用斜杠分隔开。然后,访问分割后文件路径的最后一个元素以获取文件名。
语法
func Split(str, sep string) []string
Split()函数用于通过提供的分隔符拆分字符串。该函数存在于字符串包中,它接受要拆分的字符串作为参数以及一个分隔符。然后该函数将返回最终的字符串数组作为结果。
strings.TrimRight
使用TrimRight函数删除字符串的指定字符以及尾随空格。
步骤
- 第1步 - 创建一个主要的程序包,声明fmt(格式化程序包),字符串包 main函数生成可执行代码,fmt帮助格式化输入和输出。
-
第2步 - 创建一个主函数,在该函数中创建一个变量file,并将其分配给绝对路径。
-
第3步 - 在此步骤中,对文件变量使用TrimRight函数删除任何以“/”开头的尾随斜杠。
-
第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函数来执行该程序。