一个基于Rust和Druid框架开发的简洁Windows GUI文件管理器,带有柠檬主题的自定义图标。
- 显示当前工作目录下的文件和文件夹列表
- 树形结构展示文件系统
- 支持展开/折叠目录
- 目录优先排序(目录显示在文件前面)
- 不同文件类型显示不同颜色和图标
- 文件和目录的图标视觉效果
- 文件大小自动格式化显示(B/KB/MB/GB)
- 应用程序自定义柠檬图标
- 双击打开文件时显示等待光标
- 简洁的用户界面,支持滚动浏览
- 驱动器快速导航功能
- 内置"我的电脑"、"主文件夹"和"桌面"快捷访问
- 多级目录树导航
- Rust编程语言
- Druid GUI框架 (v0.8.3)
- druid-widget-nursery提供的Tree控件 (v0.1.0)
- Windows API绑定 (windows v0.54, windows-sys v0.48)
- dirs (v5.0) 处理系统目录
- im (v15.1) 不可变数据结构
- 自定义SVG图标
- 确保已安装Rust工具链
- 克隆本项目
- 在项目目录下运行:
cargo run
项目采用模块化设计,代码按功能划分为不同的模块:
src/main.rs
- 程序入口,声明模块和自定义命令src/app.rs
- 应用程序的初始化和运行逻辑src/models.rs
- 定义数据模型FileItem
- 表示文件系统中的文件或目录FileDetail
- 文件详细信息(名称、大小、类型、修改时间)AppState
- 应用程序状态
src/file_system.rs
- 文件系统操作build_file_tree
- 递归构建文件树结构fetch_directory_contents
- 获取目录内容get_drives
- 获取系统驱动器列表
src/delegate.rs
- 应用程序事件处理和委托src/system.rs
- 系统功能和Windows API调用src/utils.rs
- 实用工具函数src/commands.rs
- 自定义命令定义src/ui/
- 用户界面相关代码constants.rs
- UI常量和颜色定义mod.rs
- UI模块导出和主界面构建directory_tree.rs
- 目录树实现utils.rs
- UI相关工具函数file_list/
- 文件列表组件(模块化设计)mod.rs
- 文件列表主模块row.rs
- 文件行视图生成icons.rs
- 文件和文件夹图标绘制item_styles.rs
- 文件项样式和格式化controllers/
- 交互控制器directory_controller.rs
- 目录项点击和导航控制item_controller.rs
- 文件项双击和光标控制mod.rs
- 控制器模块导出
src/assets/
- 应用程序资源- 各种柠檬主题SVG图标
- 应用程序图标
build.rs
- 构建脚本,处理图标资源Cargo.toml
- 项目配置和依赖.gitignore
- Git忽略配置,排除编译产物config.json
- 应用程序配置文件
- 模块化文件列表组件 - 将大型文件拆分为多个小型专注模块:
- 分离了图标渲染逻辑(icons.rs)
- 抽象了文件行样式创建(item_styles.rs)
- 将控制器代码移至专用目录
- 通过BoxedWidget类型修正解决了类型兼容问题
- 改进文件交互 - 添加了双击打开文件功能,并在等待时显示特殊光标
- 自定义应用图标 - 实现了自定义应用程序图标支持
- 文件类型颜色区分 - 根据文件类型显示不同颜色,提高可视化效果
- 精细化应用启动流程 - 优化了应用初始化和文件夹加载过程
- 优化系统调用 - 改进了与Windows API的交互,提升性能
- 模块化 - 代码按功能分类,提高可维护性
- 可扩展性 - 每个模块负责特定功能,可以独立扩展
- 代码可读性 - 添加详细的中文注释,解释代码功能和实现细节
- 类型安全 - 利用Rust的类型系统确保代码安全性
- UI一致性 - 保持统一的视觉风格和交互模式
- 系统集成 - 充分利用系统特定功能,如文件属性和桌面集成
- 添加更多文件操作功能(复制、移动、删除等)
- 支持文件拖放操作
- 添加文件预览功能
- 支持文件搜索和过滤
- 添加文件排序选项
- 增加更多自定义主题选项
- 支持更多平台