簡體   English   中英

如何用Java創建帶有多個文件的torrent文件?

[英]How to create a torrent file with multiple files in Java?

我目前正在嘗試實現一個小型工具,該工具可以從文件夾內的一組文件中創建一個.torrent 對於單個文件,它工作得很好。

根據此站點: Torrent_file多個文件存儲在一個文件集中。

到目前為止,這是我所做的:

public Map<Object, Object> getFiles(File dict) throws IOException, NoSuchAlgorithmException {

    Map<Object, Object> files = new HashMap<Object, Object>();
    FileOutputStream fos = new FileOutputStream(merged);

    for (File fileEntry : dict.listFiles()) 
    {
        if (fileEntry.isFile()) 
        {
            Map<String, Object> file = new HashMap<String, Object>();
            file.put("path", fileEntry.getName());
            file.put("length", fileEntry.length());

            FileInputStream fis = new FileInputStream(fileEntry);
            byte[] byteArray = new byte[(int) fileEntry.length()];
            fis.read(byteArray, 0, (int) fileEntry.length());
            fos.write(byteArray);
            fos.flush();
            files.put(file.get("path"), file.get("length"));
        }

    }
    fos.close();
    pieces = hashPieces(merged, pieceLength);
    return files;
}

我嘗試為每個單獨的文件創建一個映射,然后將這些映射放入包含所有文件的另一個映射中。 然后,我將文件作為文件數組合並到一個大文件中,以計算碎片哈希。 但是,文件結構部分無法正常工作。

多個文件的方法由以下方式調用:

    // ...
    Map<String, Object> info = new HashMap<String, Object>();
    info.put("name", sharedFile.getName());
    if (sharedFile.isDirectory()) {
        Map<Object, Object> path = getFiles(sharedFile);
        info.put("files", path);
    }
    // ...

不知何故我不知道如何匯編文件列表。 我知道必須使用地圖來完成,但是我對於必須選擇什么作為鍵和值感到絕望。

信息映射中files鍵下的值不是映射,而是映射列表,每個映射都描述一個文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM