Gopeed BT 下载存储路径指南:3 步找到文件所在
【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed
种子下完,你打开下载目录发现文件埋在同名文件夹里三层深,而另一个单文件种子却直接躺在目录最外层。这篇文章以 Gopeed(一款 Golang + Flutter 编写、支持 HTTP、BT/磁力、ed2k 的下载管理器)为例,把 BT 下载路径的生成规则讲清楚,并把常见路径问题逐一修掉。
先搞懂:BT 文件到底存在哪
种子的最终落点由「任务下载目录 + 种子名 + 文件在种子内的路径」三段拼出来,搞清楚这三段,路径就再也跑不了。
- 任务下载目录:建任务时指定;没指定就取全局默认目录(见 pkg/download/model.go)
- 种子名:多文件种子会用它建一个同名文件夹
- 种子内路径:按种子文件里自带的目录结构原样落盘
多文件种子的拼接逻辑就几行(摘自 internal/fetcher/fetcher.go):
func (m *FetcherMeta) FolderPath() string { folder := m.Res.Name if m.Opts.Name != "" { folder = m.Opts.Name } return path.Join(m.Opts.Path, folder) }它在干什么:把「任务下载目录」和「种子名文件夹」拼成保存路径,如果任务改过名,就用改后的名字当文件夹。单文件种子则不走这套逻辑,文件直接落在下载目录里,见同一文件里的SingleFilepath。
📍 动手前先自查:3 件要查的事
改配置之前先做这三项对照,确认问题出在哪一段,再动地方。
- 现象:找不到文件在哪→ 查任务详情里的「保存到」路径,再对照设置里的默认目录,看文件落在哪一段
- 现象:同名种子下出两份、位置不同→ 查两次任务各自指定的下载目录,每个任务的路径是独立的
- 现象:目录里没有种子名文件夹→ 查这个种子是不是单文件种子,单文件本来就不建文件夹,属正常行为
🔧 把常见的路径问题修掉
下面三个高频问题,都按「现象 → 原因 → 修复」来走。
Gopeed 修改下载目录
现象:所有种子全混在默认目录里,越堆越乱。
原因:任务没单独指定路径时,一律走全局默认目录DownloadDir。
修复:
- 在设置里把默认保存目录改成目标路径
- 若启用了下载目录白名单,先把新目录加进白名单(见 pkg/download/model.go)
- 需要单独放的任务,在创建时通过「保存到」指定目录
- 记住:改目录不会挪走已下载的文件,旧的自己手动搬
种子文件嵌套目录太深怎么办
现象:落盘位置是种子名文件夹外又套三四层子文件夹,找文件得一路点进去。
原因:Gopeed 按种子内部的目录结构原样保存,不改结构(见 internal/protocol/bt/fetcher.go),种子本身嵌套多,落盘就嵌套多。
修复:
- 建任务时用文件选择功能只勾选要的文件,没选的文件下载完会被清理,不占空间
- 下载完成后用完成脚本自动把文件挪到想要的位置(见 pkg/download/script.go)
- 创建任务时重命名保存名,至少能把最外层文件夹改短
种子名带特殊字符怎么处理
现象:种子名含:、?等系统不允许的字符,建目录失败或落盘位置对不上。
原因:种子名会被直接拿去做文件夹名,特殊字符在文件系统里不合法。
修复:
- 给任务重命名保存名,把不合法字符换掉
- 仓库内置了 pkg/util/path.go 里的
SafeFilename,负责把非法字符替换成_、顺手截断过长的文件名
✨ 进阶可选:让下载自动整理
下面两个功能都是可选的,觉得需要再开,不用硬上。
- 按日期归档:下载目录里支持
%year%、%month%、%date%这类占位符,落盘时按当时日期自动生成目录(见 pkg/util/path.go) - 完成自动归类:打开完成脚本后,系统会把任务保存路径传给脚本,可以自己写「视频文件归到 Movies 文件夹」这类逻辑
⚡ 速查
- 单文件种子:文件直接进下载目录;多文件种子:种子名文件夹 + 内部目录结构
- 找不到文件:先查任务「保存到」路径,再确认种子是否单文件
- 换默认目录:改全局默认目录,白名单开了就先加目录
- 嵌套太深:用文件选择减少落盘文件,或用完成脚本自动归位
- 路径机制在新版本中可能还会调整,动手前先翻一下项目的最新发布说明
【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考