63 lines
1.5 KiB
Go
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"
|
|
}
|