2012-02-09 6 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 –

答えて

0

あなたがファイルシステムで手を汚さないようにしたい場合を除き、あなたが名前を付けた再帰オプションが唯一の方法です。私はあなたがそうは思わない。

スレッドのパフォーマンスに関しては、スレッドの数を構成可能にし、いくつかのサンプルディレクトリを作成し、各設定のパフォーマンスを測定することをお勧めします。

ところで、ほとんどのファイルファインダはファイルのインデックスを作成します。彼らはスケジュールに従ってディスクをスキャンし、ディスク上のファイルとディレクトリに関する関連情報を含むファイルを更新します。このファイルは、検索を容易にするための形式です。このインデックスファイルは、実際の検索を実行するために使用されます。同じディレクトリに対してこの検索を繰り返し実行する予定の場合は、これを行う必要があります。

+0

OPはそれらを索引付けするのではなく、ファイルを探したい。インデックス作成には独自の欠点があり、このような小さなアプリでは過度のものです。 –

+0

私は最後の段落をサイドノートとして入れました。多分それは明らかではなかったでしょう。 – Joe

関連する問題