feat 存档

This commit is contained in:
2026-03-21 21:44:24 +08:00
parent 86c63292b2
commit fd0aebcbaa
20 changed files with 74 additions and 7854 deletions

View File

@@ -9,7 +9,9 @@ import (
"fiction/db/sqlite"
"fmt"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
"time"
)
@@ -180,3 +182,63 @@ func saveToFile(name string, content string) {
fmt.Printf("写入文件失败: %v\n", err)
}
}
// OpenSourceDir 打开原文目录
func (a *App) OpenSourceDir() error {
// 获取当前工作目录
cwd, err := os.Getwd()
if err != nil {
return err
}
// 构建绝对路径
sourceDir := filepath.Join(cwd, "source")
// 确保目录存在
if _, err := os.Stat(sourceDir); os.IsNotExist(err) {
os.MkdirAll(sourceDir, 0755)
}
// 打开目录
return openDir(sourceDir)
}
// OpenGenerateDir 打开仿文目录
func (a *App) OpenGenerateDir() error {
// 获取当前工作目录
cwd, err := os.Getwd()
if err != nil {
return err
}
// 构建绝对路径
generateDir := filepath.Join(cwd, "generate")
// 确保目录存在
if _, err := os.Stat(generateDir); os.IsNotExist(err) {
os.MkdirAll(generateDir, 0755)
}
// 打开目录
return openDir(generateDir)
}
// openDir 打开指定目录
func openDir(dir string) error {
var cmd string
var args []string
// 根据操作系统选择打开命令
switch os := runtime.GOOS; os {
case "windows":
cmd = "explorer"
args = []string{dir}
case "darwin":
cmd = "open"
args = []string{dir}
case "linux":
cmd = "xdg-open"
args = []string{dir}
default:
return fmt.Errorf("unsupported operating system: %s", os)
}
// 执行命令
return exec.Command(cmd, args...).Start()
}