Go语言获取文件的文件路径、文件名、扩展名
- 引入包
import (
"fmt"
"path/filepath"
"path"
)
- 获取路径中的目录及文件名
files := "E:\\data\\test.txt"
paths, fileName := filepath.Split(files)
fmt.Println(paths, fileName)
# 输出结果为:E:\data\ test.txt
- 获取路径中的文件名
files := "E:\\data\\test.txt"
fmt.Println(filepath.Base(files))
# 输出结果为:test.txt
- 获取路径中的文件扩展名
files := "E:\\data\\test.txt"
fmt.Println(path.Ext(files))
#输出结果为:.txt
#注意这里是.txt,还有个点
文件类型识别库
第三方优秀开源库
[https://github.com/gabriel-vasile/mimetype](https://github.com/gabriel-vasile/mimetype)
func FileDetectV2(name string) {
//mtype := mimetype.Detect([]byte)
// OR
//mtype, err := mimetype.DetectReader(io.Reader)
// OR
mtype, err := mimetype.DetectFile(name)
if err != nil {
fmt.Println(err)
return
}
t := mtype.String()
e := mtype.Extension()
fmt.Println("mtype.String()=", t)
fmt.Println("mtype.Extension()=", e)
}
func TestFileDetectV2(t *testing.T) {
FileDetectV2("example.mp3")
FileDetectV2("1.4.16.bin")
FileDetectV2("devices-import.xlsx")
// 输出
//mtype.String()= audio/mpeg
//mtype.Extension()= .mp3
//mtype.String()= application/octet-stream
//mtype.Extension()=
//mtype.String()= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
//mtype.Extension()= .xlsx
}