Windowsサーチを使用した全文検索の結果を取得するコードを探しています(デフォルトでVista、7、8で利用できるはずです)。
私はここでいくつかの質問とmsdnに関するいくつかのテキストを見つけましたが、それらのどれもが機能するいくつかの正確なコードを持っていません。 Windows APIコードパック(Windows Searchへのインターフェイスの1つとして言及されているため)を試しましたが、結果はファイル名のみで返され、全文では返されません。
動作するコードは次のとおりです。たとえば、デスクトップフォルダで「ダミー」という単語を検索するようにしました。
string connectionString = "Provider=Search.CollatorDSO;Extended Properties=\"Application=Windows\"";
OleDbConnection connection = new OleDbConnection(connectionString);
string query = @"SELECT System.ItemName FROM SystemIndex " +
@"WHERE scope ='file:" + System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "' and FREETEXT('dummy')";
OleDbCommand command = new OleDbCommand(query, connection);
connection.Open();
List<string> result = new List<string>();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
result.Add(reader.GetString(0));
}
connection.Close();
DSearchの例を見てください。 Windowsサーチコードサンプル
それがあなたが望むものです。