比如文件名为test.tar.bz2,通过path.Ext方法只能获取到bz2扩展名,如何在事先并不知道是单扩展名还是复合扩展名的情况下获取到tar.bz2扩展名呢?
比如文件名为test.tar.bz2,通过path.Ext方法只能获取到bz2扩展名,如何在事先并不知道是单扩展名还是复合扩展名的情况下获取到tar.bz2扩展名呢?
Golang 最方便的一点是可以看到源码,建议你直接看 path.Ext
这个函数,逻辑挺简单的。
可以在内部做个简单的改写
func ext(path string) string {
var fileExt string
for i := len(path) - 1; i >= 0; i-- {
if path[i] == '/' {
break
}
if path[i] == '.' {
fileExt = path[i:]
}
}
return fileExt
}
当然,你也可以组合 path.Split()
和 strings.Index()
等字符串处理函数
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1k 阅读
2 回答860 阅读
3 回答674 阅读
993 阅读
1 回答782 阅读
如果根本文件名中完全不包含的
.
这个符号的话:把文件名根据
.
分割,再把除开文件名的部分合并~