Windows search - полнотекстовый поиск в C#

Я ищу код, который получает результаты полнотекстового поиска с помощью поиска Windows (он должен быть доступен в Vista, 7 и 8 по умолчанию).

Я нашел некоторые вопросы здесь и некоторые тексты на MSDN, но ни один из них не имеет точного кода, который работает. Я пытался с Windows API Code Pack (как он упоминается как один из интерфейсов для поиска Windows), но он возвращает результаты только для имен файлов, а не для полного текста.

2 ответа

Решение

Вот код, который работает - в примере я сделал это для поиска слова "пустышка" в папке рабочего стола:

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

Это то, что ты хочешь.

Другие вопросы по тегам