2012-02-09 65 views
-3

我正在寫一個應用程序,它將在計算機上搜索具有特殊文件擴展名的文件。 (例如JPG)。輸入數據:「D:」,「.JPG」輸出:帶結果的txt文件(文件目錄);我知道一個簡單的遞歸算法,但可能會更好。所以,可能是你告訴我一個遍歷文件目錄的有效算法。此外,我想用多線程來解決這個問題,以獲得更好的性能。但我應該使用多少個線程?如果我將1個線程用於1個目錄 - 這將是愚蠢的。寫一個文件查找器(java)

+0

如果你不想重新發明輪子,你可以使用這個http://commons.apache.org/io/api-release/index.html?org/apache/commons/io/package-summary.html – 2012-02-09 21:55:54

回答

0

除非您想讓自己的手變得與文件系統不一致,否則您的名字是遞歸選項是唯一的選擇。我懷疑你沒有。

關於線程性能,最好的選擇是使線程數可配置,創建一些示例目錄,並測量每個設置的性能。

順便說一下,大多數文件查找程序都會創建一個文件索引。他們按計劃掃描光盤,並更新包含磁盤上文件和目錄相關信息的文件。該文件的格式旨在便於搜索。該索引文件用於執行實際搜索。如果您打算針對同一個目錄重複執行此搜索,則應該這樣做。

+0

OP想要查找文件,而不是索引它們。索引有其自身的缺點,對於像這樣的小應用程序來說它是過度的。 – 2012-02-09 21:41:22

+0

我把最後一段作爲旁註。也許這並不明顯。 – Joe 2012-02-09 21:43:00