19

Windows 検索を使用して全文検索の結果を取得するコードを探しています (デフォルトでは、Vista、7、および 8 で利用できるはずです)。

ここでいくつかの質問とmsdnでいくつかのテキストを見つけましたが、それらのどれにも機能する正確なコードはありません。Windows API Code Pack (Windows Search へのインターフェイスの 1 つとして言及されている) を試してみましたが、全文ではなく、ファイル名の結果のみが返されます。

4

2 に答える 2

29

これが機能するコードです-例では、デスクトップフォルダーで「ダミー」という単語を検索するように作成しました:

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 に答える