Initial setup of project files and directory structure.

This commit is contained in:
liu
2026-01-29 10:29:58 +08:00
parent b3488fa51a
commit 981b4ecf42
9 changed files with 1121 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
## 07 - 全局配置: 路径配置
### 1. 功能概述
- **功能名称**:全局路径配置
- **核心逻辑**:通过配置一个**全局根目录 (WorkDir)**,自动派生出音频处理流水线(汇聚 -> 转换 -> 去重 -> 繁简转换 -> 整理 -> 入库)中各个阶段所需的标准子目录。
- **设计目标**:一键配置,全流程自动化运行,减少用户在每个环节手动输入路径的操作。
### 2. 全局根路径设计
用户只需在设置界面指定一个 `根路径 (BasePath)`,系统将自动在该路径下维护以下结构:
| 目录名称 | 变量名示例 | 物理路径 (假设根为 `/MusicWork`) | 用途说明 |
| :--- | :--- | :--- | :--- |
| **Input** | `SRC_ACC_DIR` | `/MusicWork/Input` | 默认存放待处理的原始杂乱音频 |
| **Staging_Aggregated** | `DST_ACC_DIR` | `/MusicWork/Staging_Aggregated` | 扁平化汇聚后的核心工作区 |
| **Staging_Format_Issues**| `DST_CONV_ISSUE` | `/MusicWork/Staging_Format_Issues` | 存放转换失败或格式不达标的文件 |
| **Staging_Duplicates** | `DST_DEDUP_TRASH`| `/MusicWork/Staging_Duplicates` | 存放被识别为重复的文件 |
| **Staging_T2S_Output** | `DST_ZH_CONV` | `/MusicWork/Staging_T2S_Output` | 存放完成繁简转换后的文件 |
| **Staging_Organized** | `DST_ORG_DIR` | `/MusicWork/Staging_Organized` | 存放最终按 A-Z 结构整理好的文件 |
| **Library_Final** | `DST_LIB_FINAL` | `/MusicWork/Library_Final` | 最终入库合并的目标主库 |
### 3. 各模块路径映射关系 (Pipeline)
根据流水线顺序,各模块的路径使用逻辑如下:
1. **音频文件汇聚 (01)**
- **源目录**`${ROOT}/Input` (用户可自定义修改,默认从此开始)
- **目标目录**`${ROOT}/Staging_Aggregated` (固定)
2. **音频格式智能处理 (02)**
- **源目录**`${ROOT}/Staging_Aggregated` (固定,使用汇聚后的结果)
- **转换后异常目录**`${ROOT}/Staging_Format_Issues` (固定)
3. **音乐去重 (03)**
- **源目录**`${ROOT}/Staging_Aggregated` (固定)
- **重复文件存放目录**`${ROOT}/Staging_Duplicates` (固定)
4. **元数据繁简转换 (04)**
- **源目录**`${ROOT}/Staging_Aggregated` (固定)
- **转换后输出目录**`${ROOT}/Staging_T2S_Output` (固定)
5. **音乐整理 (05)**
- **源目录**`${ROOT}/Staging_Aggregated` (或根据流程选择输出目录)
- **整理后固定目录**`${ROOT}/Staging_Organized` (固定)
6. **整理入库 (06)**
- **源目录**`${ROOT}/Staging_Organized` (固定,取自音乐整理的输出)
- **主库固定目录**`${ROOT}/Library_Final` (固定)
### 4. 前端交互设计
- **配置入口**:全局设置 (Settings) 页面。
- **交互流程**
1. 用户点击“选择根目录”。
2. 系统展示派生出的子目录预览列表。
3. 点击“保存”,系统自动创建尚未存在的子目录。
4. 各功能页面的路径输入框默认填充上述对应的自动路径。
### 5. 后端实现建议
- **ConfigService**: 负责保存 `BasePath` 并提供获取各子路径的方法(如 `getAggregatedDir()`)。
- **初始化逻辑**: 在保存 `BasePath` 时,调用 `Files.createDirectories()` 确保整个工作流目录结构就绪。
- **路径解析**: 使用 `Paths.get(basePath, subDirName)` 确保跨平台路径兼容。