c#无法获取子目录列表

c#无法获取子目录列表,c#,winforms,io,directory,C#,Winforms,Io,Directory,我在网络上看到过这段代码(以及类似的代码),但我就是无法让它正常工作。每当我逐行调试它时,它就会中断调试并加载应用程序。不会显示任何错误消息,“错误”行之后的任何代码都不会被处理 以下是违规代码: foreach (string folder in allFolders) { string[] subFolders = Directory.GetDirectories(folder, "*", SearchOption.AllDirectories); Mess

我在网络上看到过这段代码(以及类似的代码),但我就是无法让它正常工作。每当我逐行调试它时,它就会中断调试并加载应用程序。不会显示任何错误消息,“错误”行之后的任何代码都不会被处理

以下是违规代码:

foreach (string folder in allFolders)
{
    string[] subFolders = Directory.GetDirectories(folder, 
        "*", SearchOption.AllDirectories);
    MessageBox.Show("Test");
}
foreach循环已输入,但消息框从未显示

如果我删除
SearchOption.AllDirectories
,代码将被成功处理,但我需要一些方法来包括目录中的所有子目录


有什么想法吗?

MessageBox.Show
不起作用,因为您的代码在web环境下,而
MessageBox
在winform中使用。通常我们使用javascript弹出一个消息框,例如,
alert('hi')
测试了您的代码,并且它工作正常,因此问题可能出现在代码的另一个位置,或者可能是权限问题,尽管发生时会返回异常,但MSGBOX也会显示OK

        List<string> allFolders = new List<string>();
        allFolders.Add(@"C:\joomla\");

        foreach (string folder in allFolders)
        {
            string[] subFolders = Directory.GetDirectories(folder, "*", SearchOption.AllDirectories);
            MessageBox.Show("Test");
        }
List allFolders=new List();
添加(@“C:\joomla\”);
foreach(所有文件夹中的字符串文件夹)
{
string[]subFolders=Directory.GetDirectories(文件夹“*”,SearchOption.AllDirectories);
MessageBox.Show(“测试”);
}

你的代码对我来说很好
在我看来,这个方法调用只是需要很多时间来执行。例如,如果所有文件夹中都有根目录,则必须等待几分钟(取决于系统参数)。您是否在只有几个嵌套目录的目录上检查了此代码段

我假设您在winforms中工作,并且执行不会到达MessageBox.Show调用。

您尝试调试此代码了吗?字符串[]是否已填充?您能否提供一个完整的可执行程序(使用
Main
方法)来说明此问题?您如何知道提问者的代码在web环境下?@MAKKAM:一定是,因为他调试了代码,所以进入了循环,但
MessageBox
现在毫无例外地工作。可能他正在调试一个web应用程序。那么“如果我删除SearchOption.AllDirectories,代码将被成功处理,但我需要一些方法来包含目录中的所有子目录”呢?是的,正如Kobi所说,提问者可以从他的代码中显示消息框。谢谢,我感觉这就是问题所在。我在一个只有少量文件夹的文件夹上试用了它,似乎效果不错。我猜我原来的文件夹中有比我想象的更多的子文件夹!尽管离开几分钟后,消息框仍然不显示。有没有可能因为有大量的子文件夹,这段代码永远不会工作(尽管没有产生错误)?我认为这是不可能的。您应该考虑到这个方法可能需要很长时间才能执行。只是比较执行时间:尝试使用此通配符掩码从根目录运行操作系统嵌入式搜索,并查看此搜索运行的时间。