Editar ⸺ Hay torrents que tienen directorios vacíos.

Editar ⸺ Hay torrents que tienen directorios vacíos.

Cuando intenté crear un archivo torrent a partir de un directorio que contiene varios directorios secundarios vacíos, fueron ignorados y omitidos en el archivo torrent. Me pregunto si esto es unqBittorrentcosa o una limitación de laBitTorrentprotocolo. ¿El protocolo BitTorrent le permite compartir directorios vacíos, preservando el árbol de archivos real?

Imagen de un directorio que contiene varios directorios secundarios vacíos. Una imagen de dichos directorios ha sido ignorada y omitida en el archivo torrent.


Editar ⸺ Hay torrents que tienen directorios vacíos.

Sí, en realidad hay algunos. ¿Pero cómo?

19 de 53619 torrents tienen directorios vacíos.

Un directorio vacío en el torrent 05e4bb4227689c24fb61cd200e812d402526475b

Abierto con el editor BEncode

El último elemento de la lista "ruta" es una cadena vacía

Cómo maneja qBittorrent estos misteriosos directorios vacíos

Cómo maneja qBittorrent los directorios vacíos

Respuesta1

Es imposible compartir directorios vacíos en el protocolo BitTorrent.

Todos los archivos en un metarchivo BitTorrent (archivo .torrent) se enumeran en la lista de "archivos" que se encuentra dentro del diccionario "información". Los directorios se almacenan como parte de la "ruta" a un archivo relativo al directorio raíz.

La especificación del protocolo BitTorrent v1 establece:

ruta: una lista de cadenas codificadas en UTF-8 correspondientes a nombres de subdirectorios, la última de las cuales es el nombre del archivo real (una lista de longitud cero es un caso de error).

Ver:https://www.bittorrent.org/beps/bep_0003.html

Esto significa que es imposible compartir directorios sin archivos, ya que el último elemento de una ruta siempre se interpretará como un nombre de archivo.

El siguiente ejemplo muestra cómo se almacenan las rutas de los archivos dentro de un archivo .torrent (formateado como 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",
    }
}

Este torrent contiene dos archivos:

  • kaggle-neumonía-jpg/stage_2_detailed_class_info.csv
  • kaggle-neumonía-jpg/stage_2_test_images_jpg/0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"

El directorio "stage_2_test_images_jpg" sólo existe porque está contenido en la "ruta" del archivo "0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg".

Si eliminamos "0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg" del torrent, el directorio "stage_2_test_images_jpg" se convertiría en el último elemento de la "ruta" y se convertiría en un archivo en lugar de un directorio.

información relacionada