Warren
6205748519
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
虚拟Tree文件夹操作完整实现:folder增删改 + ls/cp/mv操作(330行代码)
虚拟Tree操作命令扩展:
- Tree管理:create/list/import/delete(已有)
- Folder操作:create/delete/rename(新增)
- 文件操作:ls/cp/mv(新增)
Folder操作命令:
✅ folder create: 创建文件夹(path/name/tree_type)
markbase interface tree folder create --user accusys --path / --name NewFolder --tree-type categories
✅ folder delete: 删除文件夹(path/name/tree_type)
markbase interface tree folder delete --user accusys --path / --name OldFolder --tree-type categories
✅ folder rename: 重命名文件夹(path/old_name/new_name/tree_type)
markbase interface tree folder rename --user accusys --path / --old-name OldName --new-name NewName --tree-type categories
文件操作命令:
✅ ls: 列出文件夹内容(path/tree_type)
markbase interface tree ls --user accusys --path /Downloads --tree-type categories
输出:📁文件夹 📄文件,带文件大小显示
✅ cp: 复制文件/文件夹(source/target/tree_type)
markbase interface tree cp --user accusys --source /Downloads/File.txt --target /Backup --tree-type categories
生成新node_id,保持原文件属性
✅ mv: 移动/重命名文件/文件夹(source/target/tree_type)
markbase interface tree mv --user accusys --source /Downloads/File.txt --target /Archive --tree-type categories
更新parent_id,不生成新node_id
技术实现:
- 使用SQLite数据库(file_nodes表)
- Path解析:支持多级路径(/path/to/folder)
- Node查找:递归查找parent_id
- UUID生成:Uuid::new_v4()
- 时间戳:chrono::Utc::now().to_rfc3339()
数据表结构:
- node_id: TEXT PRIMARY KEY(UUID)
- label: TEXT NOT NULL(文件夹/文件名)
- parent_id: TEXT(父文件夹ID)
- node_type: TEXT(folder/file)
- tree_type: TEXT(categories/series)
- file_uuid: TEXT(文件UUID)
- file_size: INTEGER(文件大小)
- created_at/updated_at: TEXT(时间戳)
代码统计:
- tree.rs: 330行(新增263行)
- 编译成功:151警告,0错误
- 修改文件:1个(tree.rs)
Git提交:
- 文件变更:markbase-core/src/cli/interface/tree.rs
- 新增代码:263行功能实现
- 编译状态:成功
2026-06-13 02:31:32 +08:00
..
2026-06-13 02:31:32 +08:00
2026-06-12 12:59:54 +08:00