Вы можете сделать это, используя os.Stat
:
fi, err:=os.Stat(path)
if err!=nil {
// Does not exist, or permissions issue, etc.
pathError:=err.(*os.PathError)
// get detalils of error if necessary
} else if fi.IsDir() {
// Directory
}
Вы не можете проверить, может ли несуществующий путь быть каталогом. В вашем примере bar
может быть файлом или каталогом.