Libragnar(Libtorrent Wrapper)LocalTorrent 文件,而不是 URL? C#/C++

Posted

技术标签:

【中文标题】Libragnar(Libtorrent Wrapper)LocalTorrent 文件,而不是 URL? C#/C++【英文标题】:Libragnar(Libtorrent Wrapper) LocalTorrent File, Instead of URL? C#/C++ 【发布时间】:2015-11-15 03:32:34 【问题描述】:

问题: 有谁知道如何使用 torrent 的文件路径而不是 Url 将 torrent 添加到 LibRagnar? (LibRagnar 是一个 libtorrent 包装器) libragnar = C# libtorrent = C++

如果有人知道我可以如何使用 Libtorrent 将种子添加到会话中,但使用本地文件(同时仍使用 Libragnar 控制其他所有内容)。但我不确定从哪里开始使用 Libtorrent。


问题原因: 我必须使用文件路径,因为 Torrent 需要 cookie 登录才能访问它。所以我要么需要让 Libragnar 在从 URL 获取种子时使用 CookieCollection,要么让它使用本地“.torrent”文件。


问题: 我目前正在尝试使用文件路径而不是 URL,并且 Torrent 状态给出了错误:unsupported URL protocol: D:\Programming\bin\Debug\Tempfiles\File.torrent。这不允许我启动它。

例子:

    var addParams = new AddTorrentParams

    SavePath = "C:\\Downloads",
    Url = "D:\\Programming\\bin\\Debug\\Tempfiles\\File.torrent"
;

编辑:Tom W 的回答(发布在 C# 聊天室中)

var ati = new AddTorrentParams()

    TorrentInfo = new TorrentInfo("C:\thing.torrent"),
    SavePath = @"C:\save\"
;

关于答案的注意事项:我试图编辑 Tom W 的帖子并在聊天室中添加他给我的答案,但是我猜它被拒绝了?但由于他是帮助我的人,我希望他获得荣誉,也希望其他任何有这个问题的人都能得到答案。所以我不得不将答案添加到问题的底部。

【问题讨论】:

如果有人至少可以为我指出解决这个问题的方向,那么至少我以后可以自己回答。 【参考方案1】:

从libtorrent documentation看来:

唯一的强制参数是save_path,它是目录 您希望保存文件的位置。您还需要指定 ti (torrent 文件), info_hash (信息哈希 torrent)或 url(下载 .torrent 文件的 URL 来自)

Libragnar 的AddTorrentParams 似乎是add_torrent_params 的包装,并且有一个名为TorrentInfo 的属性。我怀疑如果你避免设置 URL,而是将此属性设置为 TorrentInfo 的实例,你应该得到你想要的结果。

免责声明:我以前从未使用过 torrent,不知道这个库,也不使用 C++。

【讨论】:

谢谢,当我只使用 Libragnar 时,我正试图弄清楚如何直接访问 libtorrent 库。我只对 C++ 进行了少量研究(为 3ds(自制软件)重新创建了空间入侵者,但从未完成)。无论如何,我可能不得不修改 Libragnar 的 AddTorrentParams 或直接使用 Libtorrent。 (我想拼命避免)感谢您至少为我指明方向,现在我知道要研究哪些方法了。

以上是关于Libragnar(Libtorrent Wrapper)LocalTorrent 文件,而不是 URL? C#/C++的主要内容,如果未能解决你的问题,请参考以下文章

libtorrent 传输是不是默认加密?

在 libtorrent 示例中使用 maketorrent

导入 libtorrent 不工作

在 MSVS 2013 中使用 libtorrent

libtorrent 内置跟踪器 [关闭]

Libtorrent 设置枚举