BitComet 中文文档 下载 App

BitComet 智能文件命名 — 自动识别下载文件叫什么

为什么 HTTP 下载的文件名经常是乱的

BT 任务没问题——torrent 文件里明确写了每个文件叫什么名字、路径是什么、大小多少。但 HTTP/FTP 下载时,文件名完全取决于服务器怎么返回,而服务器返回的名字经常是:

没有智能命名,下载下来的文件要么没扩展名打不开、要么名字一堆乱码看着就难受。

BitComet 的智能命名策略

BitComet 在 HTTP/FTP 下载完成(甚至在下载过程中)会依次尝试以下策略来确定文件的正确名字:

策略一:服务器响应头

HTTP 响应头里可能有一个 Content-Disposition 字段,里面包含了原始文件名:

Content-Disposition: attachment; filename="Ubuntu-22.04.3-desktop-amd64.iso"

这是最准确的来源——直接用服务器声明的文件名。BitComet 还会识别 RFC 2231 编码的文件名(filename*=UTF-8''Ubuntu%2022.04%20LTS.iso 这种 URL 编码格式),自动解码还原成中文或其他非 ASCII 语言。

策略二:URL 路径提取

如果服务器没返回 Content-Disposition,BitComet 从 URL 里提取最后一个有意义的路径段:

https://releases.ubuntu.com/22.04/Ubuntu-22.04.3-desktop-amd64.iso?from=home
                                                              ↑ 提取这个

如果 URL 里根本没有扩展名(比如动态脚本链接 https://example.com/download.php?id=12345),BitComet 会跳过这个策略。

策略三:文件内容检测(Magic Number)

下载开始后 BitComet 会先下载文件头部的几个字节(1KB 左右),检查它的 Magic Number(魔数)来判断文件真实类型:

然后根据检测结果给文件补上正确的扩展名。比如服务器没返回扩展名、URL 里也没有,但 Magic Number 显示这是个 ZIP,BitComet 就把它命名为 download.zip 或 file123.zip(取决于有没有其他线索)。

策略四:MP3 ID3 标签读取

如果 Magic Number 检测到文件是 MP3,BitComet 会进一步读取文件头的 ID3 标签信息——里面通常包含歌曲名、艺术家、专辑名。然后自动按"艺术家 - 歌曲名.mp3"的格式重命名:

download.php → Billie Eilish - Bad Guy.mp3

策略五:手动覆盖

如果 BitComet 的自动命名结果还是不符合你的预期,可以:

HTTP/FTP 任务命名 vs BT 任务命名

BT 任务的文件名完全由 torrent 文件里的元数据决定,没有"命名策略"一说——torrent 里写什么名字就是什么名字。但 BT 任务里可以选择性下载(跳过某些文件、勾选某些文件),这些功能 HTTP/FTP 任务不具备。

BT 任务HTTP/FTP 任务
文件名来源torrent 元数据服务器返回 + 自动识别
是否需要智能命名不需要(torrent 里已声明)需要(服务器可能不给)
能否选择性下载能不能
多文件 vs 单文件可以多文件通常单文件(批量下载除外)

常见命名问题

中文文件名变成乱码

原因:服务器用 GBK/GB2312 编码返回中文文件名,但 BitComet 按 UTF-8 解码了。

解决:在 选项 → HTTP/FTP → "文件名编码检测" 里尝试不同的编码选项。或者在"高级设置"里手动指定默认编码为 GBK,然后观察效果。

服务器返回的文件名就是英文/拼音,想改成中文

BitComet 的自动命名做不到——它只能"恢复"服务器本来就能提供的信息,不会翻译。这种情况手动改名。

下载完成后又被改回了原名

可能是 BitComet 的 P2P 加速通道在同步文件名信息。关闭 HTTP P2P 加速、或者手动改名后不要再让 BitComet 参与 P2P 加速上传。

下载到一半时文件名还没确定

这是正常的——BitComet 需要先下载足够的文件头来做 Magic Number 检测。检测完成后会自动修正文件名。如果你等不及,可以在任务属性里手动指定。