我在网上看过这个代码(和类似代码),但我无法让它工作。每当我逐行调试时,它就会中断调试并加载应用程序。没有出现错误消息,“故障”行之后的任何代码仍未处理。
以下是有问题的代码:
foreach (string folder in allFolders)
{
string[] subFolders = Directory.GetDirectories(folder,
"*", SearchOption.AllDirectories);
MessageBox.Show("Test");
}
输入foreach循环,但永远不会显示消息框。
如果删除SearchOption.AllDirectories
代码已成功处理,但我需要某种方法在目录中包含所有子目录。
有什么想法吗?
答案 0 :(得分:1)
MessageBox.Show
无效,因为您的代码位于网络环境中,而MessageBox
用于winform。通常我们使用javascript弹出一个消息框,例如alert('hi')
。
答案 1 :(得分:1)
您的代码适用于我。
在我看来,这个方法调用只需要花费很多时间来执行。例如,如果allFolders中有根目录,则必须等待几分钟(取决于您的系统参数)。您是否在只有少量嵌套目录的目录上检查了此代码段?
我假设你在winforms中工作并且执行只是没有到达MessageBox.Show调用。
答案 2 :(得分:0)
测试了你的代码,它运行正常,所以问题可能出在代码的另一个地方,或者可能是权限问题,虽然它在发生时返回异常,但MSGBOX也显示正常。
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");
}