C# 尝试编译目录,但如果directorie不是';t呈现并搜索下一个

C# 尝试编译目录,但如果directorie不是';t呈现并搜索下一个,c#,getdirectories,C#,Getdirectories,我遇到了一个问题,这段代码将目录拉入列表。它在我的机器上工作正常—它们都存在,但是当我在另一台没有它们的机器上运行时,它无法加载列表并出现未处理的异常(System.IO.DirectoryNotFoundException:找不到路径“C:\Alerton…”的一部分。我需要检查所有目录,但如果它们不存在,我只需要跳过并查找下一个。提前谢谢,我是新来的,如果这是我忽略的一件简单的事情,我很抱歉 私有子getjobs(发送者作为对象,e作为EventArgs)处理MyBase.Load

我遇到了一个问题,这段代码将目录拉入列表。它在我的机器上工作正常—它们都存在,但是当我在另一台没有它们的机器上运行时,它无法加载列表并出现未处理的异常(System.IO.DirectoryNotFoundException:找不到路径“C:\Alerton…”的一部分。我需要检查所有目录,但如果它们不存在,我只需要跳过并查找下一个。提前谢谢,我是新来的,如果这是我忽略的一件简单的事情,我很抱歉

私有子getjobs(发送者作为对象,e作为EventArgs)处理MyBase.Load

    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Compass\1.0\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

        'Console.WriteLine(Dir)
    Next

    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Compass\1.5.1\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

        'Console.WriteLine(Dir)
    Next

    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Compass\1.6.4\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

        'Console.WriteLine(Dir)
    Next

    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Compass\1.6.5\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

        'Console.WriteLine(Dir)
    Next

    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Bactalk\3.0\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

        'Console.WriteLine(Dir)
    Next

    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Bactalk\3.1\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

        'Console.WriteLine(Dir)
    Next

End Sub

首先,我想你的代码是VisualBasic而不是C#,所以你可能想用VisualBasic替换C#标记,以获得比这更好的答案,因为我从来没有主动使用过它

关于例外情况:

如果指定的路径无效,“Directory.GetDirectories”方法将抛出“DirectoryNotFoundException”(请参阅)

要忽略这一点,您需要捕获它,并且在catch块中不执行任何操作。有关更多信息,请参阅

例如:

Try
    For Each Dir As String In Directory.GetDirectories("C:\Alerton\Compass\1.0\ATSINC")
        ListBox1.Items.Add(Dir & "\ddc")

    Next
Catch ex As DirectoryNotFoundException
    ' do nothing
End Try    

谢谢你,我来试试看。另外,是的,您在Visual Basic上是正确的,我将更新。