DShare 是一款基于 DTK(Deepin Tool Kit) 专为 deepin 桌面环境 打造的文件共享软件。它把本机的一个目录(~/myshare)通过局域网共享出去: 既提供原生 DTK 图形界面在本地管理文件,也内置一个 HTTP/HTTPS 服务,让同局域网 内的其他设备通过浏览器或本程序直接浏览、下载、上传文件。
~/myshare
采用 DTK6 开发,深度集成 deepin 的视觉风格与桌面组件(窗口、控件、主题、 提示框、日志等),是 deepin / UOS v25 桌面下体验一致的文件共享工具。
English version is available at the bottom of this file.
[](https://github.com/zhutianhao/dshare#%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7)
https://<你的IP>:5000
openssl
239.255.42.99
AuthManager
[](https://github.com/zhutianhao/dshare#%E7%BC%96%E8%AF%91%E4%BE%9D%E8%B5%96)
Core
Widgets
Network
HttpServer
Gui
Widget
Log
适用于 deepin / UOS v25(DTK6)环境。
[](https://github.com/zhutianhao/dshare#%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AE%89%E8%A3%85)
# 在项目根目录 mkdir -p build && cd build cmake .. make -j"$(nproc)" # 运行(未安装时可直接执行构建产物) ./dshare # 可选:安装到系统 sudo make install # 可执行文件 -> /usr/bin,桌面项 -> /usr/share/applications
安装后也可从应用菜单启动(桌面项名称为「DShare」)。
[](https://github.com/zhutianhao/dshare#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)
[](https://github.com/zhutianhao/dshare#1-%E6%9C%AC%E5%9C%B0%E7%AE%A1%E7%90%86%E5%85%B1%E4%BA%AB%E7%9B%AE%E5%BD%95)
启动后默认进入本机 ~/myshare(不存在会自动创建)。通过工具栏即可:
返回上级
新建文件夹
刷新
复制
粘贴
[](https://github.com/zhutianhao/dshare#2-%E9%80%9A%E8%BF%87%E6%B5%8F%E8%A7%88%E5%99%A8%E5%85%B1%E4%BA%AB--%E8%AE%BF%E9%97%AE)
局域网:https://<你的IP>:5000
[](https://github.com/zhutianhao/dshare#3-%E5%8F%91%E7%8E%B0%E5%B9%B6%E8%BF%9E%E6%8E%A5%E5%85%B6%E5%AE%83%E8%AE%BE%E5%A4%87)
添加
.*
[](https://github.com/zhutianhao/dshare#4-%E4%B8%8E%E8%BF%9C%E7%A8%8B%E8%AE%BE%E5%A4%87%E4%BA%92%E4%BC%A0%E6%96%87%E4%BB%B6)
在「机器」下拉框选择某台远程设备后:
[](https://github.com/zhutianhao/dshare#5-%E5%BC%80%E5%90%AF%E8%AE%BF%E9%97%AE%E6%8E%88%E6%9D%83)
打开顶部的「访问需授权」开关:
[](https://github.com/zhutianhao/dshare#%E5%8D%8F%E8%AE%AE--%E7%AB%AF%E5%8F%A3%E4%B8%80%E8%A7%88)
[](https://github.com/zhutianhao/dshare#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84)
dshare/ ├── main.cpp # 程序入口,初始化 DApplication(DTK) ├── mainwindow.{h,cpp} # 主窗口:本地浏览、拖拽、跨机传输、授权弹窗 ├── fileserver.{h,cpp} # 内嵌 HTTP/HTTPS 服务(浏览/下载/上传/授权) ├── discovery.{h,cpp} # 局域网多播设备发现 ├── remotemodel.{h,cpp} # 远程共享目录只读模型(拖拽支持) ├── finddialog.{h,cpp} # 「查找设备」对话框 ├── authmanager.{h,cpp} # 客户端侧授权握手管理 ├── updirproxy.h # 本地目录的「返回上一级」代理模型 ├── dshare.desktop # 桌面启动项 ├── translations/ # 中文本地化(zh_CN) └── CMakeLists.txt # 构建配置
[](https://github.com/zhutianhao/dshare#license)
本程序以 GNU General Public License v3 (GPL-3.0) 发布,详见仓库根目录的 LICENSE 文件。
LICENSE
桌面端主界面:
当打开授权开关时,需要共享端同意才能访问(默认关闭,不需要授权):
手机端不需要安装任何软件,直接使用浏览器即可上传、下载文件:
客户端之间直接就能互相浏览共享文件(如果开启了需授权开关,也是需要对方同意才能访问):
软件完全使用codebuddy+dtk-development skill用自然语言对话开发,没有一点手工编辑代码,以下是完整对话记录:
session.txt
Featured Collection
Popular Events
源码链接:https://github.com/zhutianhao/dshare
DShare
DShare 是一款基于 DTK(Deepin Tool Kit) 专为 deepin 桌面环境 打造的文件共享软件。它把本机的一个目录(
~/myshare)通过局域网共享出去: 既提供原生 DTK 图形界面在本地管理文件,也内置一个 HTTP/HTTPS 服务,让同局域网 内的其他设备通过浏览器或本程序直接浏览、下载、上传文件。功能特性
[](https://github.com/zhutianhao/dshare#%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7)
~/myshare,支持 新建文件夹、复制/粘贴、拖拽移动/复制、删除、双击打开。https://<你的IP>:5000即可:openssl生成自签名证书并写入本机 LAN IP 到 SAN,减少浏览器告警);证书不可用时回退到明文 HTTP 并给出提示。239.255.42.99)自动 发现同局域网内其它运行本程序的 deepin 机器。可按机器名正则发起查找,避免 手动记 IP。AuthManager自动完成握手,无需 用户记忆任何口令。编译依赖
[](https://github.com/zhutianhao/dshare#%E7%BC%96%E8%AF%91%E4%BE%9D%E8%B5%96)
Core/Widgets/Network/HttpServerCore/Gui/Widget/Logopenssl编译与安装
[](https://github.com/zhutianhao/dshare#%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AE%89%E8%A3%85)
安装后也可从应用菜单启动(桌面项名称为「DShare」)。
使用方法
[](https://github.com/zhutianhao/dshare#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)
1. 本地管理共享目录
[](https://github.com/zhutianhao/dshare#1-%E6%9C%AC%E5%9C%B0%E7%AE%A1%E7%90%86%E5%85%B1%E4%BA%AB%E7%9B%AE%E5%BD%95)
启动后默认进入本机
~/myshare(不存在会自动创建)。通过工具栏即可:返回上级/新建文件夹/刷新/复制/粘贴2. 通过浏览器共享 / 访问
[](https://github.com/zhutianhao/dshare#2-%E9%80%9A%E8%BF%87%E6%B5%8F%E8%A7%88%E5%99%A8%E5%85%B1%E4%BA%AB--%E8%AE%BF%E9%97%AE)
局域网:https://<你的IP>:5000, 把该地址发给同局域网的其他人即可。3. 发现并连接其它设备
[](https://github.com/zhutianhao/dshare#3-%E5%8F%91%E7%8E%B0%E5%B9%B6%E8%BF%9E%E6%8E%A5%E5%85%B6%E5%AE%83%E8%AE%BE%E5%A4%87)
添加,弹出「查找」对话框。.*匹配全部),点击「查找」。4. 与远程设备互传文件
[](https://github.com/zhutianhao/dshare#4-%E4%B8%8E%E8%BF%9C%E7%A8%8B%E8%AE%BE%E5%A4%87%E4%BA%92%E4%BC%A0%E6%96%87%E4%BB%B6)
在「机器」下拉框选择某台远程设备后:
5. 开启访问授权
[](https://github.com/zhutianhao/dshare#5-%E5%BC%80%E5%90%AF%E8%AE%BF%E9%97%AE%E6%8E%88%E6%9D%83)
打开顶部的「访问需授权」开关:
协议 / 端口一览
[](https://github.com/zhutianhao/dshare#%E5%8D%8F%E8%AE%AE--%E7%AB%AF%E5%8F%A3%E4%B8%80%E8%A7%88)
239.255.42.99目录结构
[](https://github.com/zhutianhao/dshare#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84)
License
[](https://github.com/zhutianhao/dshare#license)
本程序以 GNU General Public License v3 (GPL-3.0) 发布,详见仓库根目录的
LICENSE文件。程序截图:
桌面端主界面:
当打开授权开关时,需要共享端同意才能访问(默认关闭,不需要授权):
手机端不需要安装任何软件,直接使用浏览器即可上传、下载文件:
客户端之间直接就能互相浏览共享文件(如果开启了需授权开关,也是需要对方同意才能访问):
开发过程说明:
软件完全使用codebuddy+dtk-development skill用自然语言对话开发,没有一点手工编辑代码,以下是完整对话记录:
session.txt