我正在尝试从c#.NET 3.5 Web应用程序在映射的网络驱动器上执行Windows搜索。它适用于本地驱动器。
我可以映射驱动器,我可以将该映射驱动器添加到库中,并从“开始”菜单成功进行交互式搜索。它找到文件甚至在文件中查找文本。驱动器已在服务器上编制索引。
当我尝试使用代码在映射驱动器中找到文件夹的文件列表时,不会返回任何内容。我不确定该文件夹需要在搜索字符串中是什么,因为它存在于库(文档)中,允许搜索它。
System.Data.OleDb.OleDbConnection connection = new
System.Data.OleDb.OleDbConnection();
connection.ConnectionString = "provider=Search.CollatorDSO.1
EXTENDED?PROPERTIES='Application=Windows'";
connection.Open();
string sqlString = @"SELECT System.ItemName FROM SystemIndex WHERE
System.ItemType <> 'Directory' AND DIRECTORY='File:Z:\\'";
System.Data.OleDb.OleDbCommand cmd = new
System.Data.OleDb.OleDbCommand(sqlString, connection);
System.Data.OleDb.OleDbDataReader reader = null;
reader = cmd.ExecuteReader();
while (reader.Read())
{
...
}
读者没有回复任何内容。 Z:驱动器是映射驱动器。
我无法在程序管理器中添加映射的驱动器&gt;索引选项。它没有列出。
答案 0 :(得分:0)
我通过在SystemIndex&#39;之前添加服务器名称解决了这个问题。并在SQL字符串中的共享名称中,如下所示:
string sqlString = @&#34; SELECT System.ItemName FROM MyServer.SystemIndex WHERE System.ItemType&lt;&gt; &#39;目录&#39; AND DIRECTORY =&#39; File:// MyServer / MyShare / MyFiles&#39;&#34;;