OpenBaiduPan 是一个用 Lazarus + Free Pascal(LCL) 构建的百度网盘原生桌面客户端:控件全部自绘的现代云盘界面、后台线程传输引擎、高 DPI 适配,无 WebView、无浏览器依赖,也不依赖任何第三方组件包。API 行为对齐官方 baidu-drive-sdk-go。
功能特性
登录
- 支持直接粘贴 access_token,或 OAuth 设备码流程(需在 pan.baidu.com/union 创建应用自备 App Key / Secret Key)
- 凭据存 Windows 凭据管理器,重启免登录
网盘浏览与文件管理
- 面包屑导航、分页(100/页)、名称 / 时间 / 大小排序、搜索框即时过滤、列表 / 宫格双视图、容量与会员信息
- 新建文件夹、重命名、复制、移动、删除(进回收站);行复选框与表头三态全选联动,悬浮行显示快捷下载,右键菜单或双击行也可直接下载
下载
- filemetas 取 dlink 后用 curl 断点续传(
curl -C -),实时进度与速度(EMA 平滑) - 600ms 轮询目标文件大小推进度;服务器不支持断点续传时自动整档重试
- 默认保存目录读注册表解析系统真实的「下载」文件夹;下载保留为记录,每条提供打开文件 / 打开所在目录 / 删除文件 / 删除记录
上传
- 4 MiB 分片 MD5 → precreate(支持秒传)→ 分片写临时文件 → curl 分片上传 superfile2 → create 合并
- 文件拖入窗口即可上传,上限 4 GiB
图片预览
- 缩略图优先(url_2000 → icon 按清晰度选取),原图 ≤ 8 MiB 兜底;显示「宽 × 高 · 体积」,预览内可直接转下载原图
界面
- 左侧边栏布局:品牌区、文件 / 传输导航(带进行中数量气泡)、存储空间卡片(用量 > 80% 变橙提醒)与用户区
- 品牌蓝
#0C49FF主色(深色主题#4080FF),亮 / 暗双主题(启动跟随系统深浅色,可手动切换),Win11 标题栏整体着色 - 全中文界面(Microsoft YaHei UI)
设计说明
- 线程模型:UI 全部留在主线程,HTTP 请求与下载 / 上传在后台线程执行,结果经 Synchronize / Queue 回流,回调检查窗体存活防止关闭竞态
- HTTP:走系统 WinInet,用系统证书库与代理配置,无需 OpenSSL DLL
- 传输管线:下载 curl 退出码 33 时自动去掉
-C -整档重试;上传单线程顺序执行流式分片 MD5 → precreate 秒传短路 → superfile2 → create - 高 DPI:全部界面常量按 96 DPI 设计,窗体构造完成后整体缩放,动态创建的控件与绘制常量经 DP() 换算,125% / 150% / 200% 缩放下显示正常
- 全代码自绘界面:不依赖窗体设计器,按钮 / 卡片 / 列表 / 图标均自绘,主题切换即全局重着色;源码 UTF-8 with BOM 并全局设 CP_UTF8,fcl-json 的
\u转义在解析前自行预解码
构建与运行
lazbuild OpenBaiduPan.lpi # → OpenBaiduPan.exe
需要 Lazarus 4.x + FPC 3.2.2(仅依赖 LCL 与 FCL 自带单元,无需额外组件包)、Windows 10+(HTTPS 走系统 WinInet,下载 / 上传依赖系统自带 curl)。