Golang程序 获取文件扩展名
在golang中,我们可以使用路径包和字符串包来获取某个文件的扩展名。在这篇文章中,我们将使用两种方法获得文件的扩展名。在第一种方法中,我们将使用路径包中的函数path.Ext;在第二种方法中,我们将使用字符串包中的函数strings.LastIndex。
方法1:使用路径包
在这个方法中,我们将使用path包中的path.Ext来获取文件扩展名。这个内置函数将把文件作为一个输入,其扩展名将被打印出来。
语法
path.Ext
Go path/filepath软件包使文件的处理更加容易。它提供了一种方法来连接和分割文件路径,提取文件名和扩展名,并对文件路径进行一些额外的操作。函数filepath.Ext返回与提供的路径相关的文件扩展名。它返回文件路径中以最后一个”. “字符开始的部分。”字符开始的部分。如果路径不包含”. “字符,则返回一个空字符串。
算法
- 第1步 – 创建一个包main并声明fmt(format package),程序中的路径包,main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 – 创建一个main函数,并在该函数中创建一个变量myfile,将所需的文件分配给这个变量。
-
第3步 – 使用path.Ext函数查找所需文件的扩展名,并在扩展名变量中获得该扩展名。
-
第4步 – 在控制台打印扩展名。
-
第5步 – 使用fmt包中的fmt.Println()函数执行打印语句,其中ln表示新行。
例子
在这个例子中,我们将使用path包中的path.Ext函数来查找文件扩展名。
package main
import (
"fmt"
"path"
)
func main() {
myfile := "file1.txt"//create file
extension := path.Ext(myfile) //obtain the extension of file
fmt.Println("The extension of", myfile, "is", extension) //print extension
}
输出
The extension of file1.txt is .txt
方法2:使用字符串包
在本例中,strings.LastIndex用于查找文件名中最后出现的点(.)。如果不能找到该点,该函数返回-1,表示该文件没有扩展名。如果找到了点,从点到字符串结尾的文件路径子串被设置为ext变量。剩下的代码与第一个例子中的代码相同。让我们看看它是如何通过代码和算法执行的。
语法
strings.LastIndex()
Go中的strings包提供了许多处理字符串的函数。要找到一个字符串中特定子串的最终实例,可以使用字符串包中的LastIndex函数。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(format package), strings包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 – 创建一个main函数,在该函数中创建一个文件并将其分配给一个名为myfile的变量。
-
第3步 – 现在,使用strings.LastIndex函数来获得最后出现的点(.)的位置。
-
第4步 – 如果没有得到扩展名,则打印失败信息。
-
第5步– 但是如果获得了扩展名,则在ext变量中接收它,它是文件字符串的子串,从索引开始直到结束。
-
第6步 – 使用fmt包中的fmt.Println()函数将ext打印到控制台,其中ln表示新行。
例子
在这个例子中,我们将使用strings包中的strings.LastIndex来执行这个程序。
package main
import (
"fmt"
"strings"
)
func main() {
myfile := "file1.txt"
extension := strings.LastIndex(myfile, ".") //obtain the extension after the dot
if extension == -1 {
fmt.Println("The file has no extension")
return //if no extension is present print failure
}
ext := myfile[extension:] //obtain the extension in ext variable
fmt.Println("The extension of", myfile, "is", ext) //print the extension of file
}
输出
The extension of file1.txt is .txt
结论
我们用两种方法执行了获取文件扩展名的程序。在第一种方法中,我们使用路径包函数,在第二种方法中,我们使用字符串包函数。