我正在寻找一个使用Windows搜索获得全文搜索结果的代码(默认情况下应该可以在Vista,7和8中使用)。
我在这里找到了一些问题,并在msdn上发现了一些文本,但是没有一个有一些确切的代码可行。我尝试过使用Windows API Code Pack(因为它被称为Windows搜索的一个接口),但它只返回文件名的结果,而不是全文。
答案 0 :(得分:28)
以下是可行的代码 - 例如,我在桌面文件夹中搜索单词“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();
答案 1 :(得分:1)
看看DSearch示例。 Windows Search Code Samples
这就是你想要的。