Files
voidraft/internal/services/path_manager.go
2025-06-22 15:08:38 +08:00

63 lines
1.5 KiB
Go

package services
import (
"os"
"path/filepath"
)
// PathManager 路径管理器
type PathManager struct {
configDir string // 配置目录
settingsPath string // 设置文件路径
keybindsPath string // 快捷键配置文件路径
}
// NewPathManager 创建新的路径管理器
func NewPathManager() *PathManager {
// 获取用户配置目录
userConfigDir, err := os.UserConfigDir()
if err != nil {
// 如果获取失败,使用当前目录
userConfigDir, _ = os.Getwd()
}
// 设置voidraft配置目录
configDir := filepath.Join(userConfigDir, ".voidraft", "config")
return &PathManager{
configDir: configDir,
settingsPath: filepath.Join(configDir, "settings.json"),
keybindsPath: filepath.Join(configDir, "keybindings.json"),
}
}
// GetConfigDir 获取配置目录路径
func (pm *PathManager) GetConfigDir() string {
return pm.configDir
}
// GetSettingsPath 获取设置文件路径
func (pm *PathManager) GetSettingsPath() string {
return pm.settingsPath
}
// GetKeybindsPath 获取快捷键配置文件路径
func (pm *PathManager) GetKeybindsPath() string {
return pm.keybindsPath
}
// EnsureConfigDir 确保配置目录存在
func (pm *PathManager) EnsureConfigDir() error {
return os.MkdirAll(pm.configDir, 0755)
}
// GetConfigName 获取配置文件
func (pm *PathManager) GetConfigName() string {
return "settings"
}
// GetKeybindsName 获取快捷键配置文件名
func (pm *PathManager) GetKeybindsName() string {
return "keybindings"
}