抛出异常:Microsoft.VisualBasic.dll中的“ System.ArgumentException”

时间:2019-05-13 23:33:52

标签: vb.net

我正在编写一个程序,该程序扫描空文件夹并将其删除。我对我的代码有疑问。当我运行调试器时,它将在扫描文件夹时引发错误,并且引发错误。 Microsoft.VisualBasic.dll中的“ System.ArgumentException”。我真的无法在线找到有关此错误的任何信息。这是我的代码。

Private Sub RemoveEmptyFolders(ByVal path As String)

    Try
        For Each fname As String In Directory.GetDirectories(Dir)
            Dim fn As New DirectoryInfo(fname)
            If fn.GetFiles.Length = 0 AndAlso fn.GetDirectories.Length = 0 Then
                fn.Delete()
                Console.WriteLine("Deleted " + fname + "!")
            End If
        Next
        For Each subdir As String In Directory.GetDirectories(Dir)
            RemoveEmptyFolders(subdir)
        Next
    Catch
    End Try

End Sub

我不知道为什么我在调试器中遇到此错误,我也不知道我在这里缺少什么。从我的角度来看,代码看起来恰好。谁能告诉我问题出在哪里?

1 个答案:

答案 0 :(得分:0)

在调用第二个循环时,目录已被删除,这就是为什么要获取System.ArgumentException的原因。如果要使用两个循环,请将第二个循环放在第一个循环中,并在删除所有子目录之后执行fn.Delete()。