# webdav_mount **Repository Path**: newjava-cn/webdav_mount ## Basic Information - **Project Name**: webdav_mount - **Description**: 基于WebDAV协议的文件系统挂载工具,轻松将远程WebDAV存储挂载为本地磁盘,支持跨平台访问与高效文件管理。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-04 - **Last Updated**: 2026-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WebDAV 挂载管理(webdav_mount) 一个 Windows 桌面工具(Flutter),用可视化的方式管理 **rclone + WinFsp** 挂载 OpenList(或其他任意 WebDAV 服务器)为本地盘符。对标命令行操作,把「安装依赖 → 配置 WebDAV → 挂载 → 卸载 → 开机自挂」全部做成界面按钮。 ## 功能 - **环境检查/一键安装**:检测 rclone、WinFsp 是否就绪,未安装时一键安装(优先 winget;winget 缺失时直接下载安装——rclone 解压到用户目录、WinFsp 用 MSI 静默安装,带进度日志) - **已有 remote 直接挂载**:自动读取 rclone.conf,列出所有 WebDAV remote,点「挂载」选盘符即可,无需重复录入 - **WebDAV 配置**:表单新增/编辑(名称、地址、账号、密码、盘符、vfs 缓存模式)——连接信息**只写入 rclone.conf,本工具不持久化任何凭据** - **校验账号密码 / 连通性**:保存时自动 `rclone lsd` 校验,失败明确提示 401/403 等错误 - **测试连接**:一键 `rclone lsd`,展示目录列表结果 - **挂载 / 卸载**:一键操作,实时显示挂载状态(盘符探测) - **开机自动挂载**:开关控制,通过计划任务 + 启动脚本实现(登录时自动挂载) - **删除 remote**:自动先卸载、再删计划任务、最后删 rclone.conf 中的配置 ## 运行 / 构建 ```bash flutter pub get flutter run -d windows # 开发运行 flutter build windows --release # 构建发布版,产物在 # build\windows\x64\runner\Release\webdav_mount.exe ``` ## 测试 ```bash flutter test # 单元测试 + 冒烟测试(默认跳过集成测试) flutter test --dart-define=WEBDAV_LIVE=true test/mount_integration_test.dart # ↑ 端到端验证:真实创建 remote → 挂载 Z: → 列目录 → 卸载 → 清理(有副作用) ``` ## 技术要点 - 平台:仅 Windows(挂载盘符是 Windows 特性) - **凭据归 rclone**:URL/用户名/密码只通过 `rclone config create/update` 写入 rclone.conf(密码混淆加密存储),本工具不保存任何连接信息;工具只在本地存「挂载偏好」(盘符/缓存模式) - 与 rclone 交互全部走 `Process.run` / `Process.start` 参数数组(不经 shell,无转义问题) - 挂载:`rclone mount : <盘符>: --vfs-cache-mode --network-mode --volname ` - 开机自启:写 bat 到 `%APPDATA%\WebdavMount\`,注册计划任务 `WebdavMount_`(`schtasks /SC ONLOGON`) ## 目录结构 ``` lib/ main.dart 入口(window_manager 设窗口尺寸) models/mount_prefs.dart 挂载偏好模型(盘符/缓存模式)+ 缓存模式说明 pages/home_page.dart 主界面(环境卡片 + remote 列表 + 编辑/安装对话框) services/ environment_service.dart 检测/安装 rclone 与 WinFsp rclone_service.dart rclone remote 增删改、测试连接、解析 rclone.conf mount_service.dart 挂载/卸载/状态/开机自启 app_store.dart 持久化挂载偏好(SharedPreferences) ```