C#windows搜索映射的网络驱动器

时间:2016-02-02 14:12:08

标签: c# windows

我正在尝试从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;索引选项。它没有列出。

1 个答案:

答案 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;;