我的任务是创建一个应用程序,让用户搜索静态目录(共享驱动器)中的文件。我有一个文本框供用户输入完整的文件名或部分文件名(由用户确定)。我想要的是它获取用户输入并查询目录并将所有匹配的值返回到列表框。
出于这个问题的目的......目录是:
@("\\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);
}
答案 0 :(得分:0)
这样可以解决问题:
string directory = @"\\server\directory\folder\subfolder\";
string search = "userInput";
IEnumerable<string> files = Directory.GetFiles(directory).Where(file => file.Contains(search));
在此之后,您只需将数据绑定到列表框即可完成。
答案 1 :(得分:0)
您可以使用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页面包含您可以使用的选项的完整详细信息。