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
Это то, что ты хочешь.