我正在尋找一種時間有效的方法來將文件列表解析到樹中。可能有數以百萬計的文件路徑。從文件路徑列表構建目錄樹
蠻力的解決方案是將目錄分隔符出現時的每個路徑分開,並通過字符串比較遍歷目錄和文件條目中添加的樹,但這會非常慢。
輸入數據通常是按字母順序排列,因此列表會是這樣的:
C:\用戶\亞倫\ AppData的\ Amarok的\å文件
C:\用戶\亞倫\ AppData的\ Amarok的\ Afile2
C:\用戶\亞倫\應用程序數據\ Amarok的\ Afile3
C:\用戶\亞倫\應用程序數據\攪拌機\ alibrary.dll
C:\用戶\亞倫\ AppData的\攪拌機\ and_so_on.txt
從這個排序我的自然反應就是做緩慢的字符串比較之前的目錄列表劃分爲組... ...不知何故。我真的不確定。我會很感激任何想法。
編輯:如果可能的話,這個樹從上到下被延遲加載會更好。
爲什麼你認爲這將是非常緩慢? 如果有N行,每行是直至m個字符(所以有<=米目錄組件),這將只需要時間O(納米)。對於每一行,將其插入深度至多爲m的樹狀結構中。 nm是輸入數據的大小,所以它是線性的。 – p00ya 2010-03-15 05:27:32