【问题标题】:C# windows search on mapped network driveC# windows 在映射的网络驱动器上搜索
【发布时间】:2016-02-02 14:12:07
【问题描述】:

我正在尝试从 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: 驱动器是映射驱动器。

我无法在程序管理器 > 索引选项中添加映射驱动器。未列出。

【问题讨论】:

    标签: c# windows


    【解决方案1】:

    我通过在“SystemIndex”之前和 SQL 字符串的共享名称中添加服务器名称来解决问题,如下所示:

    string sqlString = @"SELECT System.ItemName FROM MyServer.SystemIndex WHERE System.ItemType 'Directory' AND DIRECTORY='File://MyServer/MyShare/MyFiles'";

    【讨论】:

      猜你喜欢
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多