1
我试图搜索PC中的文件..问题是某些目录无法访问。 我想要的是忽略这样的目录并继续搜索。 尝试抓住不这样做。搜索文件忽略访问被拒绝的错误
这里是我试图用搜索的方式:
Directory.GetFiles("C:\", "*.*", SearchOption.AllDirectories)
是否有这么操作成功完成任何错误,忽略搜索的好方法?
我试图搜索PC中的文件..问题是某些目录无法访问。 我想要的是忽略这样的目录并继续搜索。 尝试抓住不这样做。搜索文件忽略访问被拒绝的错误
这里是我试图用搜索的方式:
Directory.GetFiles("C:\", "*.*", SearchOption.AllDirectories)
是否有这么操作成功完成任何错误,忽略搜索的好方法?
既然你有目录不能被访问,你将不得不自己遍历文件系统这是一个简单的方法,将这样做。
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将包含来自可访问目录的所有文件。