我正在编写一个程序,该程序扫描空文件夹并将其删除。我对我的代码有疑问。当我运行调试器时,它将在扫描文件夹时引发错误,并且引发错误。 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
我不知道为什么我在调试器中遇到此错误,我也不知道我在这里缺少什么。从我的角度来看,代码看起来恰好。谁能告诉我问题出在哪里?
答案 0 :(得分:0)
在调用第二个循环时,目录已被删除,这就是为什么要获取System.ArgumentException的原因。如果要使用两个循环,请将第二个循环放在第一个循环中,并在删除所有子目录之后执行fn.Delete()。