Golang程序获取文件扩展名


在Golang中,我们可以使用path包和string包来获取特定文件的扩展名。在这篇文章中,我们将使用两种方法获取文件扩展名。第一种方法将使用path包的path.Ext函数。第二种方法将使用strings包的strings.LastIndex函数。

方法1:使用Path包

在这种方法中,我们将使用path包中的path.Ext来获取文件扩展名。这个内置函数将接收要打印扩展名的文件作为输入。

语法

path.Ext

Go的path/filepath包使文件操作更加容易。它提供了一种方法来连接和分割文件路径,提取文件名和扩展名,以及对文件路径执行许多其他操作。函数filepath.Ext返回与提供的路径关联的文件扩展名。它返回文件路径中从最后一个"."字符开始的部分。如果路径不包含"."字符,则返回空字符串。

算法

  • 步骤1 − 创建一个package main并声明fmt(格式化包)、path包在程序中,其中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包

在此示例中,strings.LastIndex用于查找文件名中最后一个点(.)的出现位置。如果找不到点,则该函数返回-1,表示文件没有扩展名。如果找到了点,则将从点到字符串末尾的文件路径子字符串设置为ext变量。其余代码与第一个示例中的代码相同。让我们看看它是如何通过代码和算法执行的。

语法

strings.LastIndex()

Go中的strings包提供了一些用于处理字符串的函数。要查找字符串中特定子字符串的最后一次出现位置,请使用strings包中的LastIndex函数。

算法

  • 步骤1 − 创建一个package main并声明fmt(格式化包)、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

结论

我们使用两种方法执行了获取文件扩展名的程序。在第一种方法中,我们使用了path包函数,在第二种方法中,我们使用了strings包函数。

更新于: 2023年2月22日

6K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告