文件传输助手用于把 Android 手机上的一个或多个文件,通过同一局域网直接保存到 Windows 电脑所选的文件夹。传输不经过云端,已有同名文件不会被覆盖。
- Windows:运行
artifacts/windows-x64/FileTransferAssistant.exe - Android:在手机上安装
artifacts/android/FileTransferAssistant-debug.apk
这两个文件是本地构建产物,不纳入 Git。Windows 程序为自包含 win-x64 单文件,不要求另装 .NET;当前 EXE 没有商业代码签名,Windows SmartScreen 可能显示“未知发布者”。APK 使用 Android 调试证书签名,安装时需要允许当前文件管理器“安装未知应用”。
- 在 Windows 端选择接收文件夹,点击“启动服务”。首次运行时,只允许 Windows 防火墙的“专用网络”访问。
- 确认手机与电脑连接到同一个可信 Wi-Fi。
- 在 Android 端输入 Windows 界面列出的 Wi-Fi IPv4 地址和 6 位配对码,再点击“测试连接”。不要在手机上使用
127.0.0.1。 - 选择一个或多个文件,点击“上传到 Windows”。上传期间可取消。
- Windows 端会显示接收结果;重名文件会自动编号,已有文件不会被覆盖。
File_Transfer_Assistant/
|-- android/ Android 客户端
|-- windows/ Windows 接收端
|-- artifacts/ 本机构建的可运行文件(Git 忽略)
`-- docs/ 协议与开发说明
当前版本面向家庭或办公室的可信局域网。每个 Windows 接收会话使用不同的临时配对码,停止接收后立即失效。首版传输使用局域网 HTTP,不提供端到端加密,因此不要在公共 Wi-Fi 上传敏感文件。
Windows 端只允许把文件写入当前选中的目录,不接受 Android 端提供的路径。文件名会经过 Windows 规则清理;内容先流式写入带所有权标记的专用临时目录,完整接收后再原子移动为最终名称。收到的文件不会被自动打开或执行。
- 单批最多 100 个文件
- 单文件最多 2 GiB
- 单个 HTTP 请求约 10 GiB
- Windows 同时处理最多 2 个上传请求
Android 与 Windows 都使用流式读写,不会把整个大文件载入内存。批次中途失败时,已经完整确认的文件会保留,正在接收的临时文件会删除;Android 会把结果不确定的项目明确标出,避免直接重试产生副本。
- 连接失败:确认两台设备在同一个非访客 Wi-Fi,关闭手机/电脑 VPN,并尝试 Windows 界面中的另一个私有 IPv4 地址。
- 防火墙:在 Windows Defender 防火墙中允许程序访问“专用网络”,不要为公共网络开放。
- 同 Wi-Fi 仍不可达:路由器可能启用了 AP/客户端隔离;访客网络通常默认隔离设备。
- 配对失败:停止并重新启动 Windows 服务后,手机必须输入新显示的配对码。
- 上传后名称变化:目标目录已有同名文件,Windows 会生成
名称 (1).扩展名。
Windows 需要 .NET 10 SDK:
dotnet test .\windows\FileTransferAssistant.slnx -c Debug
dotnet run --project .\windows\src\FileTransferAssistant.Windows\FileTransferAssistant.Windows.csprojAndroid 需要 JDK 17、Android SDK Platform 35,并可用 Android Studio 打开 android/:
cd .\android
.\gradlew.bat assembleDebug lintDebug协议细节见 docs/PROTOCOL.md,两端各自的说明见 windows/README.md 与 android/README.md。