Ответ 1
Изменить: Go переехал. См. Ответ Кита.
Используйте путь/файлpath.Ext, чтобы получить расширение. Затем вы можете использовать длину расширения для получения подстроки минус расширение.
var filename = "hello.blah"
var extension = filepath.Ext(filename)
var name = filename[0:len(filename)-len(extension)]
В качестве альтернативы вы можете использовать strings.LastIndex, чтобы найти последний период (.), но это может быть немного более хрупким, поскольку (например, без расширения), которые filepath.Ext
обрабатывает, что вам может потребоваться явно для кода, или если Go должен быть запущен на теоретическом O/S, который использует расширитель расширений, отличный от периода.