2023-03-27 19:51:10 +07:00
|
|
|
package obiutils
|
|
|
|
|
|
|
|
import (
|
|
|
|
"path"
|
2025-01-24 18:09:59 +01:00
|
|
|
"path/filepath"
|
2023-03-27 19:51:10 +07:00
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
2023-08-27 16:48:15 +02:00
|
|
|
// RemoveAllExt removes all file extensions from the given path.
|
|
|
|
//
|
|
|
|
// Parameters:
|
|
|
|
// - p: the path to remove file extensions from (string).
|
|
|
|
//
|
|
|
|
// Returns:
|
|
|
|
// - The path without any file extensions (string).
|
2023-03-27 19:51:10 +07:00
|
|
|
func RemoveAllExt(p string) string {
|
2023-08-27 16:48:15 +02:00
|
|
|
|
2023-03-27 19:51:10 +07:00
|
|
|
for ext := path.Ext(p); len(ext) > 0; ext = path.Ext(p) {
|
2023-08-27 16:48:15 +02:00
|
|
|
p = strings.TrimSuffix(p, ext)
|
2023-03-27 19:51:10 +07:00
|
|
|
}
|
2023-08-27 16:48:15 +02:00
|
|
|
|
2023-03-27 19:51:10 +07:00
|
|
|
return p
|
2023-08-27 16:48:15 +02:00
|
|
|
|
|
|
|
}
|
2025-01-24 18:09:59 +01:00
|
|
|
|
|
|
|
func Basename(path string) string {
|
|
|
|
filename := filepath.Base(path)
|
|
|
|
ext := filepath.Ext(filename)
|
|
|
|
|
|
|
|
// Keep removing extensions until there are no more
|
|
|
|
for ext != "" {
|
|
|
|
filename = strings.TrimSuffix(filename, ext)
|
|
|
|
ext = filepath.Ext(filename)
|
|
|
|
}
|
|
|
|
|
|
|
|
return filename
|
|
|
|
}
|