在这里,当我们在input.text
中输入文件夹名称时,它将在D驱动器中搜索该文件夹并在Path.text
中返回其路径。
它适用于input.text
中输入的单个名称
但我想在input.text
中搜索多个文件夹名称,并希望其路径位于Path.text
。
例如:
ABC,EFG,XYZ
我在input.text
private void button1_Click (object sender, EventArgs e)
{
string[] dirs = Directory.GetDirectories(D:\, input.Text + "*", SearchOption.AllDirectories);
foreach (string dir in dirs)
{
Path.Text =dir.ToString();
}
}
答案 0 :(得分:2)
试试这个:
首先拆分所有输入的目录
然后为每个单独的条目调用你的函数。
要使用+=
private void button1_Click (object sender, EventArgs e)
{
string [] individualDirs = input.Text.Split(',');
foreach (string one_dir in individualDirs)
{
string[] dirs = Directory.GetDirectories(@"D:\", one_dir + "*", SearchOption.AllDirectories);
foreach (string dir in dirs)
{ // to add more Text to your TextBox use +=
Path.Text += dir.ToString() + Environment.NewLine;
}
}
}
另一种可能性也可能是使用Linq并一气呵成:
string [] individualDirs = input.Text.Split(',');
List<string> dirslinq = individualDirs.SelectMany(x => Directory.GetDirectories(@"C:\", x + "*", SearchOption.AllDirectories)).ToList();
Path.Text = String.Join("\n", dirslinq);
答案 1 :(得分:1)
尝试用逗号分割文本,请参阅下面的代码:
var folderNames = input.Text.Split(',');
string[] dirs = null;
foreach (var folder in folderNames)
{
dirs = Directory.GetDirectories(@"D:\", folder + "*", SearchOption.AllDirectories);
}
foreach (string dir in dirs)
{
Path.Text += dir.ToString() + ", ";
}
答案 2 :(得分:0)
如果您使用逗号分隔您要搜索的值,则可以使用substring
命令将提取的值提供给代码,并多次运行