Skip to content

添加递归导入文件夹视频文件内容的功能#43

Open
jason-xuan wants to merge 1 commit intoklsdf:mainfrom
jason-xuan:main
Open

添加递归导入文件夹视频文件内容的功能#43
jason-xuan wants to merge 1 commit intoklsdf:mainfrom
jason-xuan:main

Conversation

@jason-xuan
Copy link
Copy Markdown

feat: 添加递归导入文件夹视频文件功能

摘要

  • 新增递归扫描文件夹功能,支持自动遍历选中目录及其子目录下的所有视频文件。
  • 实现批量导入时的去重逻辑,自动跳过已存在的视频资源。
  • 视频管理页面工具栏新增“导入文件夹”按钮,优化导入交互体验。
  • 完善主进程与渲染进程间的 IPC 通信,支持大批量文件路径的传输与处理。

变更文件

  • ipc/file-handlers.js
  • preload.js
  • src/core/VideoManager.ts
  • src/composables/useVideoManagement.ts
  • src/components/common/Toolbar.vue
  • src/views/VideoView.vue

关键改动

  1. IPC 主进程 (ipc/file-handlers.js)

    • 新增 scan-directory-recursively 处理程序,使用深度优先搜索 (DFS) 算法递归读取目录结构,返回符合扩展名要求的文件路径列表。
  2. 核心逻辑 (VideoManager.ts & useVideoManagement.ts)

    • VideoManager 新增 scanDirectoryForNewVideos:调用底层扫描接口,并比对现有库数据进行去重。
    • useVideoManagement 封装 importFromDirectory:处理用户交互(选择文件夹)、调用扫描、批量入库以及 UI 反馈(Toast 通知)。
  3. UI 更新 (VideoView.vue & Toolbar.vue)

    • Toolbar 组件支持通过配置显示“导入文件夹”按钮。
    • VideoView 传入 importFolderButtonText 配置,并绑定导入事件。

验证

  • 基本功能验证:在视频页面点击“导入文件夹”按钮,选择包含视频的文件夹,验证是否能成功导入文件。
  • 递归验证:选择一个包含多层子文件夹的目录,验证是否能识别深层目录下的视频文件。
  • 去重验证:选择一个已部分导入过的文件夹,验证导入完成后,已存在的文件没有被重复添加。

Checklist

  • 构建与运行通过
  • UI 交互(按钮显示、Toast 提示)正常

@klsdf
Copy link
Copy Markdown
Owner

klsdf commented Feb 10, 2026

在0.7版本中,页面的结构发生了超大改变,已经没有VideoView.vue这种独立页面了(
现在全部使用GenericResourceView.vue统一管理(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants