19

我正在寻找一个使用 Windows 搜索获取全文搜索结果的代码(默认情况下它应该在 Vista、7 和 8 中可用)。

我在这里找到了一些问题和 msdn 上的一些文本,但它们都没有一些可以工作的确切代码。我尝试过使用 Windows API 代码包(因为它被称为 Windows 搜索的接口之一),但它只返回文件名的结果,而不是全文。

4

2 回答 2

29

这是有效的代码 - 例如,我在桌面文件夹中搜索单词“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();
于 2013-07-06T22:59:07.113 回答
1

看一下 DSearch 示例。 Windows 搜索代码示例

那正是你想要的。

于 2013-07-10T10:03:09.353 回答