アクセスできないディレクトリがあるので、ここで自分でファイルシステムを走査する必要があります。これは簡単な方法です。
Private Sub ProcessDirectory(sDirectory As String, fileList As List(Of String))
Try
Dim files As String() = System.IO.Directory.GetFiles(sDirectory)
fileList.AddRange(files)
Dim directories As String() = System.IO.Directory.GetDirectories(sDirectory)
For Each direct As String In directories
ProcessDirectory(direct, fileList)
Next
Catch ex As Exception
End Try
End Sub
これは多少時間がかかる可能性があり、あなたのドライブ上にあるファイルの数に応じて、使用
Dim fileList As List(Of String) = New List(Of String)()
ProcessDirectory("C:\", fileList)
。 ProcessDirectoryが呼び出されると、fileList Collectionにはアクセス可能なディレクトリのすべてのファイルが格納されます。