2017-04-18 32 views
1

PCでファイルを検索しようとしていますが、ディレクトリの一部にアクセスできないという問題があります。 私が望むのは、そのようなディレクトリを無視して検索を続けることです。 試してみてください。ここでアクセスを拒否したファイルを拒否しました。エラー

は、私が検索しようとしていた方法です。

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

は、操作が正常に完了したので、任意のエラーを無視して検索するための良い方法はありますか?

答えて

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にはアクセス可能なディレクトリのすべてのファイルが格納されます。

関連する問題