Visual Studio调试器是跨越/退出循环

时间:2015-03-03 18:28:27

标签: vb.net debugging visual-studio-2012

我有以下代码来清理服务器上的一组目录。我试图通过代码来验证它的工作原理,但我在调试器中得到一个奇怪的行为。我在第一行放置一个断点,然后按F8单步执行。当它到达for循环时,它会触发第一个if语句一次,然后跳出循环。 for循环迭代中有4个项目,我希望我能够逐步完成循环并观察它对集合中每个项目的作用,但事实并非如此。有什么想法吗?

以下是相关代码块:

Dim Dirs As New Collection(Of DirectoryInfo)
Dirs.Add(New DirectoryInfo(HttpContext.Current.Server.MapPath("../PDFS/Reports/")))
Dirs.Add(New DirectoryInfo(HttpContext.Current.Server.MapPath("../PDFS/Statements/")))
Dirs.Add(New DirectoryInfo(HttpContext.Current.Server.MapPath("../PDFS/HistoryStatements/")))
Dirs.Add(New DirectoryInfo(HttpContext.Current.Server.MapPath("../PDFS/ReminderStatements/")))

    For Each di As DirectoryInfo In Dirs
        If di.Exists Then

            CleanDir(di, 60)

            'Remove all previews
            If Directory.Exists(di.FullName & "Preview") Then
                Dim dPreview As New DirectoryInfo(di.FullName & "Preview")
                CleanDir(dPreview, 1)
            End If

        End If
    Next

1 个答案:

答案 0 :(得分:0)

我最终发现,di.Exists检查都没有返回true,它们都是无效目录。一旦我将目录信息更改为指向实际目录,则调试器正确地逐步执行代码。我不完全确定为什么它会以这种方式工作,我希望它可以逐步完成,并能够观察它评估每个项目。