编辑⸺ 那里有空目录的种子。

编辑⸺ 那里有空目录的种子。

当我尝试从包含多个空子目录的目录中创建 torrent 文件时,它们被忽略并省略在 torrent 文件中。我想知道这是否是qBittorrent事物或限制比特流协议。BitTorrent 协议是否允许您共享空目录,同时保留实际的文件树?

包含几个空子目录的目录图像。 在 torrent 文件中,此类目录已被忽略和省略。


编辑⸺ 那里有空目录的种子。

是的,确实有。但是怎么做呢?

53619 个种子中有 19 个有空目录。

torrent 中的空目录 05e4bb4227689c24fb61cd200e812d402526475b

使用 BEncode 编辑器打开

列表“path”的最后一个元素是一个空字符串

qBittorrent 如何处理这些神秘的空目录

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”将成为“路径”中的最后一个元素,并且将成为文件而不是目录。

相关内容