網(wǎng)友評分:
9.7分
簡單的BT文件解析器
可以看到bencoding編碼中的四種類型都有一個(gè)標(biāo)識頭,比如整數(shù)類型以'i'開始,string類型以數(shù)字開始。利用這一特性,對于每一個(gè)類型,我們先嘗試讀一個(gè)字符,并根據(jù)讀入的字符判斷讀入的是什么類型,如‘i’為整形,'d'為字典,'l'為列表而剩下的數(shù)字則為字符串。
需要四個(gè)方法來分別解析數(shù)字,字符串,字典和列表。其中數(shù)字和字符串類型只用于表示值,而不能作為容器;列表和字典類型都可以作為容器,故還有一個(gè)parent參數(shù),用于向父節(jié)點(diǎn)添加子節(jié)點(diǎn)。
顯示BT文件樹狀圖
仿照“BEncode Editor”這款工具的界面來顯示。簡單分析一下,其實(shí)就是使用了一個(gè)TreeView的控件來顯示。由于我們解析出來的節(jié)點(diǎn)和TreeView控件的節(jié)點(diǎn)正好是一一對應(yīng)的,所以這里也用一個(gè)遞歸就能實(shí)現(xiàn)了。
修改BT文件
至今為止我們都在做重復(fù)的工作,模仿已有的工具,那么接下來就是新的內(nèi)容了。經(jīng)過我的仔細(xì)觀察后發(fā)現(xiàn),百度云離線下載檢測的關(guān)鍵詞主要為
{ "name", "name.utf-8", "path", "path.utf-8", "comment", "comment.utf-8", "publisher", "publisher-url", "publisher-url.utf-8", "publisher.utf-8"}
這些鍵后面的值。只要我們把這些后面對應(yīng)的值改為一些不敏感的詞,那么就能躲過百度的審查。
為了把剛學(xué)的設(shè)計(jì)模式用上去,我在之前定義IBNode接口的時(shí)候預(yù)留了一個(gè)方法。
關(guān)于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們
Copyright ? 2005-2024 m.daaijiaoyu.cn.All rights reserved.
浙ICP備2024132706號-1 浙公網(wǎng)安備33038102330474號