편집 ⸺ 디렉토리가 비어 있는 토렌트가 있습니다.

편집 ⸺ 디렉토리가 비어 있는 토렌트가 있습니다.

여러 개의 빈 하위 디렉터리가 포함된 디렉터리에서 토렌트 파일을 만들려고 하면 해당 하위 디렉터리가 무시되고 토렌트 파일에서 생략되었습니다. 이게 맞는지 궁금해요q비트토렌트사물이나 한계비트토렌트규약. BitTorrent 프로토콜을 사용하면 실제 파일 트리를 보존하면서 빈 디렉터리를 공유할 수 있습니까?

여러 개의 빈 하위 디렉터리가 포함된 디렉터리 이미지입니다. 토렌트 파일에서 무시되고 생략된 해당 디렉토리의 이미지.


편집 ⸺ 디렉토리가 비어 있는 토렌트가 있습니다.

예, 실제로 몇 가지가 있습니다. 하지만 어떻게?

53619개의 토렌트 중 19개의 디렉토리가 비어 있습니다.

토렌트 05e4bb4227689c24fb61cd200e812d402526475b의 빈 디렉토리

BEncode 편집기로 열림

목록 "path"의 마지막 요소는 빈 문자열입니다.

qBittorrent가 이러한 신비한 빈 디렉토리를 처리하는 방법

qBittorrent가 빈 디렉토리를 처리하는 방법

답변1

BitTorrent 프로토콜에서는 빈 디렉터리를 공유하는 것이 불가능합니다.

BitTorrent 메타파일(.torrent 파일)의 모든 파일은 "info" 사전 내부에 있는 "files" 목록에 나열됩니다. 디렉터리는 루트 디렉터리를 기준으로 aa 파일에 대한 "경로"의 일부로 저장됩니다.

BitTorrent v1 프로토콜 사양에는 다음과 같이 명시되어 있습니다.

path - 하위 디렉터리 이름에 해당하는 UTF-8로 인코딩된 문자열 목록으로, 마지막 문자열은 실제 파일 이름입니다(길이가 0인 목록은 오류 사례입니다).

보다: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-pneumonia-jpg/stage_2_detailed_class_info.csv
  • kaggle-pneumonia-jpg/stage_2_test_images_jpg/0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"

"stage_2_test_images_jpg" 디렉토리는 "0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg" 파일의 "경로"에 포함되어 있기 때문에 존재합니다.

토렌트에서 "0000a175-0e68-4ca4-b1af-167204a7e0bc.jpg"를 제거하면 "stage_2_test_images_jpg" 디렉터리가 "경로"의 마지막 요소가 되고 디렉터리 대신 파일이 됩니다.

관련 정보