Public Shared Function IsEmptyDirectory(ByVal dir As String) As Boolean
If Not Directory.Exists(dir)
' ディレクトリが存在しなければ空でないとする
Return False
End If
Try
Dim entries As string() = Directory.GetFileSystemEntries(dir)
Return entries.Length = 0
Catch
' アクセス権がないなどの場合は空でないとする
Return False
End Try
End Function
Shared Sub Main()
search("c:\")
End Sub
Shared Sub search(ByVal path As String)
If IsEmptyDirectory(path)
Console.WriteLine(path) ' 空のディレクトリを画面表示
Return
End If
Try
For Each dir As String in Directory.GetDirectories(path)
search(dir)
Next
Catch
End Try
End Sub
End Class