我正在寻找一个使用Windows搜索获得全文搜索结果的代码(默认情况下应该在Vista,7和8中可用)。
我在这里找到了一些问题和一些关于msdn的文本,但没有一个有一些确切的代码。我已经尝试使用Windows API代码包(因为它被提及为Windows搜索的接口之一),但它只返回结果文件名,而不是全文。
这是代码,它的工作 – 例如我使它在桌面文件夹中搜索单词“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();