我试图在PC中搜索文件..问题是无法访问某些目录。 我想要的是忽略这些目录并继续搜索。 尝试Catch不会这样做。
以下是我尝试搜索的方式:
Directory.GetFiles("C:\", "*.*", SearchOption.AllDirectories)
有没有一种好方法可以忽略任何错误进行搜索,以便操作成功完成?
答案 0 :(得分:1)
由于您拥有无法访问的目录,因此您必须自己遍历文件系统,这是一种简单的方法。
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将包含来自可访问目录的所有文件。