重构: App拆分10域文件+并发安全+结构化日志+依赖升级

This commit is contained in:
lxy
2026-05-16 20:45:14 +08:00
parent d17c20c579
commit 767311fc04
27 changed files with 1457 additions and 1218 deletions
+75
View File
@@ -0,0 +1,75 @@
//go:build windows
package main
import (
"os"
"path/filepath"
"strings"
"golang.org/x/sys/windows/registry"
"github.com/wailsapp/wails/v3/pkg/w32"
)
// getWindowsSpecialFolder 从注册表读取 Windows 特殊文件夹的真实路径
func getWindowsSpecialFolder(guid string) string {
key, err := registry.OpenKey(registry.CURRENT_USER,
`Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders`,
registry.READ)
if err != nil {
return ""
}
defer key.Close()
val, _, err := key.GetStringValue(guid)
if err != nil || val == "" {
return ""
}
path := os.ExpandEnv(val)
if _, err := os.Stat(path); err != nil {
return ""
}
return path
}
// getWindowsDrivePaths 返回所有可用盘符路径
func getWindowsDrivePaths() map[string]string {
paths := make(map[string]string)
for _, drive := range "ABCDEFGHIJKLMNOPQRSTUVWXYZ" {
path := string(drive) + ":\\"
if _, err := os.Stat(path); err == nil {
key := string(drive)
paths[key] = path
}
}
return paths
}
// setWindowTitleBar 设置原生标题栏颜色 + 主题模式
func setWindowTitleBar(hwnd uintptr, color uint32, isDark bool) {
w32.SetTheme(hwnd, isDark)
w32.SetTitleBarColour(hwnd, color)
}
// resolveFolderPaths 解析特殊文件夹路径
func resolveFolderPaths(homeDir string) map[string]string {
paths := make(map[string]string)
folderGUIDs := map[string]string{
"desktop": "{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}",
"documents": "{D20B4C7F-5EA7-424C-B25E-039F6F1FCC8A}",
"downloads": "{374DE290-123F-4565-9164-39C4925E467B}",
}
for name, guid := range folderGUIDs {
if p := getWindowsSpecialFolder(guid); p != "" {
paths[name] = p
} else {
paths[name] = filepath.Join(homeDir, strings.ToUpper(name[:1])+name[1:])
}
}
for k, v := range getWindowsDrivePaths() {
paths["root_"+k] = v
}
return paths
}