我正在寻找一个使用 Windows 搜索获取全文搜索结果的代码(默认情况下它应该在 Vista、7 和 8 中可用)。
我在这里找到了一些问题和 msdn 上的一些文本,但它们都没有一些可以工作的确切代码。我尝试过使用 Windows API 代码包(因为它被称为 Windows 搜索的接口之一),但它只返回文件名的结果,而不是全文。
我正在寻找一个使用 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();
看一下 DSearch 示例。 Windows 搜索代码示例
那正是你想要的。