Подтвердить что ты не робот

Поиск в Windows - полнотекстовый поиск в С#

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

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

4b9b3361

Ответ 1

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

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();