Bearbeiten ⸺ Es gibt Torrents mit leeren Verzeichnissen.

Bearbeiten ⸺ Es gibt Torrents mit leeren Verzeichnissen.

Als ich versuchte, eine Torrent-Datei aus einem Verzeichnis zu erstellen, das mehrere leere Unterverzeichnisse enthält, wurden diese ignoriert und in der Torrent-Datei weggelassen. Ich frage mich, ob dies einqBittorrentSache oder eine Einschränkung derBitTorrentProtokoll. Ermöglicht das BitTorrent-Protokoll die Freigabe leerer Verzeichnisse unter Beibehaltung des tatsächlichen Dateibaums?

Ein Bild eines Verzeichnisses, das mehrere leere Unterverzeichnisse enthält. Ein Bild solcher Verzeichnisse, die in der Torrent-Datei ignoriert und weggelassen wurden.


Bearbeiten ⸺ Es gibt Torrents mit leeren Verzeichnissen.

Ja, die gibt es tatsächlich. Aber wie?

19 von 53619 Torrents haben leere Verzeichnisse.

Ein leeres Verzeichnis im Torrent 05e4bb4227689c24fb61cd200e812d402526475b

Mit dem BEncode-Editor geöffnet

Das letzte Element der Liste „Pfad“ ist eine leere Zeichenfolge

Wie qBittorrent mit diesen mysteriösen leeren Verzeichnissen umgeht

Wie qBittorrent mit leeren Verzeichnissen umgeht

Antwort1

Es ist nicht möglich, leere Verzeichnisse im BitTorrent-Protokoll freizugeben.

Alle Dateien in einer BitTorrent-Metadatei (.torrent-Datei) werden in der Liste „Dateien“ aufgelistet, die sich im „Info“-Wörterbuch befindet. Verzeichnisse werden als Teil des „Pfads“ zu einer Datei relativ zum Stammverzeichnis gespeichert.

In der Protokollspezifikation BitTorrent v1 heißt es:

Pfad – Eine Liste mit UTF-8-codierten Zeichenfolgen, die den Unterverzeichnisnamen entsprechen, wobei der letzte der eigentliche Dateiname ist (eine Liste mit der Länge Null ist ein Fehlerfall).

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

Dies bedeutet, dass es unmöglich ist, Verzeichnisse ohne darin enthaltene Dateien freizugeben, da das letzte Element eines Pfads immer als Dateiname interpretiert wird.

Das folgende Beispiel zeigt, wie die Pfade zu Dateien in einer Torrent-Datei (als JSON formatiert) gespeichert werden:

{
    "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",
    }
}

Dieser Torrent enthält zwei Dateien:

  • kaggle-pneumonia-jpg/stadium_2_detaillierte_klasseninfo.csv
  • kaggle-pneumonia-jpg/stage_2_test_images_jpg/0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"

Das Verzeichnis „stage_2_test_images_jpg“ existiert nur, weil es im „Pfad“ zur Datei „0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg“ enthalten ist.

Wenn wir „0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg“ aus dem Torrent entfernen würden, würde das Verzeichnis „stage_2_test_images_jpg“ das letzte Element im „Pfad“ und würde zu einer Datei statt zu einem Verzeichnis.

verwandte Informationen