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包函式。