## 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)` 确保跨平台路径兼容。