搜索忽略访问被拒绝错误的文件

时间:2017-04-18 21:02:07

标签: vb.net

我试图在PC中搜索文件..问题是无法访问某些目录。 我想要的是忽略这些目录并继续搜索。 尝试Catch不会这样做。

以下是我尝试搜索的方式:

Directory.GetFiles("C:\", "*.*", SearchOption.AllDirectories)

有没有一种好方法可以忽略任何错误进行搜索,以便操作成功完成?

1 个答案:

答案 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将包含来自可访问目录的所有文件。