当我尝试从包含多个空子目录的目录中创建 torrent 文件时,它们被忽略并省略在 torrent 文件中。我想知道这是否是qBittorrent事物或限制比特流协议。BitTorrent 协议是否允许您共享空目录,同时保留实际的文件树?
编辑⸺ 那里有空目录的种子。
是的,确实有。但是怎么做呢?
使用 BEncode 编辑器打开
qBittorrent 如何处理这些神秘的空目录
答案1
在 BitTorrent 协议中无法共享空目录。
BitTorrent 元文件 (.torrent 文件) 中的所有文件都列在“文件”列表中,该列表位于“信息”词典内。目录存储为相对于根目录的文件“路径”的一部分。
BitTorrent v1 协议规范规定:
路径 - 与子目录名称相对应的 UTF-8 编码字符串列表,其中最后一个是实际文件名(零长度列表是错误情况)。
看:https://www.bittorrent.org/beps/bep_0003.html
这意味着不可能共享没有任何文件的目录,因为路径的最后一个元素始终会被解释为文件名。
以下示例显示了文件路径如何存储在 .torrent 文件(格式为 JSON)中:
{
"info": {
"files": [
{
"length": 1647396,
"path": [
"stage_2_detailed_class_info.csv"
]
},
{
"length": 124100,
"path": [
"stage_2_test_images_jpg",
"0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"
]
},
],
"name": "kaggle-pneumonia-jpg",
}
}
此种子包含两个文件:
- kaggle-肺炎-jpg/stage_2_detailed_class_info.csv
- kaggle-肺炎-jpg/stage_2_test_images_jpg/0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg”
目录“stage_2_test_images_jpg”之所以存在,只是因为它包含在文件“0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg”的“路径”中。
如果我们从 torrent 中删除“0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg”,目录“stage_2_test_images_jpg”将成为“路径”中的最后一个元素,并且将成为文件而不是目录。