首页 > 解决方案 > 我想选择一个所需的文件夹,我希望它有条件地自动搜索该目录中的所有其他文件夹 C#

问题描述

所以这是我要选择的 文件夹:使用 FBD 选择的文件夹

在该 BackPath 文件夹中还有 7 个其他日期文件夹,如图所示: 所选文件夹中的日期文件夹

在每个已注明日期的文件夹中还有两个文件夹,分别命名为“In”和“Out”。

我想要做的只是选择 BackPath 文件夹,然后当我运行我的导入方法时,我希望它搜索每个过时的文件夹,只查看每个文件夹中的“Out”文件夹并忽略每个“In”文件夹。

这是我的 chooseInputFolder 方法:

private void ChooseInputFolder()
    {
        try
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.Description = "Please Select An Input Path";
            fbd.SelectedPath = @"C:\";

            if (fbd.ShowDialog() == DialogResult.OK)
            {
                tbInputPath.Text = fbd.SelectedPath;
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show("Error Occured While Trying To Populate Combo Boxes : " + ex.Message);
        }
    }

这是我在所选目录中查找的 foreach 循环:

foreach (var files in Directory.GetFiles(strPath))

标签: c#visual-studiofolderbrowserdialog

解决方案


所以我设法通过实现以下代码来解决这个问题:

foreach (string subDir1 in Directory.GetDirectories(strPath))
                {
                    foreach (string subDir2 in Directory.GetDirectories(subDir1))
                    {
                        foreach (var files in Directory.GetFiles(subDir2))
                        {
                            if(subDir2.Contains("In"))
                            {
                                //IMPORT FILES METHOD GOES HERE
                            }
                            else
                            {
                                continue;
                            }

                        }
                    }

                }

推荐阅读