4

テキスト ファイル (それぞれ 150 行程度のファイルが 2000 個程度) でいっぱいのディレクトリでキーワードを検索する最も効率的な方法を考えています。1 つのキーワードを検索するだけであれば、パフォーマンスはそれほど問題にはなりませんが、私のアプリケーションでは、別のキーワードを後で、場合によっては複数回検索できるようにしたいと考えています。そのため、毎回ファイル コレクション全体を反復処理するのは時間がかかります。また、すべてをメモリに保存すると、メモリがかなり高価になるようです。

これを行う最良の方法は何ですか?私は SQL データベースなどにアクセスできないので、コンテンツを一時的にデータベースにダンプして定期的に検索することはできません。通常の Windows アプリケーションになるだけです。

私が考えることができる最も原始的なアプローチは、キーワード検索が発生するたびにディレクトリ内のすべてのファイルを反復処理するのではなく、すべてのファイルを 1 つの巨大な XML ファイルにダンプして検索することです。しかし、これでもかなり時間がかかるように思えますか?

ディレクトリ名は事前にわかっているので、コンテンツを前処理できます-これが最適化の範囲で役立つ場合。

どんな提案でも大歓迎です、ありがとう。

4

2 に答える 2

3

C# から呼び出す cmd ユーティリティを使用してみませんか?

DOSのfindstrユーティリティは必要なことを行うことができ、効率的です: http://technet.microsoft.com/en-us/library/bb490907.aspx

C# から呼び出す方法:方法: C# でコマンド ラインを実行し、STD OUT の結果を取得する

幸運を!

于 2012-11-05T13:56:40.813 に答える