【问题标题】:Take user input and search Static directory接受用户输入并搜索静态目录
【发布时间】:2016-05-16 13:15:19
【问题描述】:

我的任务是创建一个应用程序,让用户可以在静态目录(共享驱动器)中搜索文件。我有一个文本框供用户输入完整文件名或部分文件名(由用户确定)。我想要的是它接受用户输入并查询目录并将所有匹配值返回到列表框。

出于这个问题的目的...目录是:

 @("\\server\directory\folder\subfolder\")

来自用户的输入存储为:

string search;

编辑

这是我目前的代码。

string search;
search = searchTB.ToString();
DirectoryInfo di = new DirectoryInfo(@("\\server\directory\folder\subfolder\");

// For a partial match
foreach (var fi in di.GetFiles("*" + search + "*"))
{
    Console.WriteLine(fi.Name);
    statusCodeLB.Items.Add(fi.Name);
}

// For an exact match
foreach (var fi in di.GetFiles(search))
{
     Console.WriteLine(fi.Name);
     statusCodeLB.Items.Add(fi.Name);
}

【问题讨论】:

    标签: c# .net windows-7


    【解决方案1】:

    这样就可以了:

    string directory = @"\\server\directory\folder\subfolder\";
    string search = "userInput";
    IEnumerable<string> files = Directory.GetFiles(directory).Where(file => file.Contains(search));
    

    在此之后,您只需将数据绑定到列表框即可。

    【讨论】:

      【解决方案2】:

      您可以使用DirectoryInfo 类,尤其是GetFiles

      DirectoryInfo di = new DirectoryInfo(@"\\server\directory\folder\subfolder\");
      
      // For a partial match
      foreach (var fi in di.GetFiles("*" + search + "*"))
      {
        Console.WriteLine(fi.Name);
      }
      
      // For an exact match
      foreach (var fi in di.GetFiles(search))
      {
        Console.WriteLine(fi.Name);
      }
      

      上面链接的 MSDN 页面包含您可以使用的选项的完整详细信息。

      【讨论】:

      • 我尝试了您的代码,但没有产生任何结果。我尝试将 Console.WriteLine 更改为 ListBox.Items.Add,但没有任何区别。
      • 我也尝试将 ListBox.Items.Add(fi.Name) 添加到每个 foreach 循环中......但这也没有什么不同。
      • 您的意思是在循环中加入或添加 MessageBox.show "some text" 或 ("var".ToString()) 并查看消息框是否显示?
      • Stepping through... 在 foreach 中放置一个断点,看看是否到达那里。
      • 当我在第一个循环中使用断点开始调试时,没有任何异常发生(没有错误)。如果我按下“搜索按钮”,它会显示代码并突出显示断点所在的行。但在我开始搜索之前,它不会让我介入/通过。事件窗口显示断点被命中。
      猜你喜欢
      • 1970-01-01
      • 2018-12-28
      • 2022-08-17
      • 2013-10-12
      • 2015-11-28
      • 1970-01-01
      • 2017-03-13
      • 2021-07-19
      • 1970-01-01
      相关资源
      最近更新 更多