NPS*_*NPS 3 vb.net recursion file-search
我有一个函数可以对文件进行递归目录搜索,但是当我搜索驱动器时,出现访问被拒绝错误,这会停止搜索。我怎样才能避免这些错误?
这是我使用的功能:
lstSearch = GetFilesRecursive(FolderBrowserDialogMain.SelectedPath)
Private Function GetFilesRecursive(ByVal path As String) As List(Of String)
Dim lstResult As New List(Of String)
Dim stkStack As New Stack(Of String)
stkStack.Push(path)
Do While (stkStack.Count > 0)
Dim strDirectory As String = stkStack.Pop
Try
lstResult.AddRange(Directory.GetFiles(strDirectory, "*.mp3"))
Dim strDirectoryName As String
For Each strDirectoryName In Directory.GetDirectories(strDirectory)
stkStack.Push(strDirectoryName)
Next
Catch ex As Exception
End Try
Loop
Return lstResult
End Function
Run Code Online (Sandbox Code Playgroud)
感谢您提供任何解决方案。
小智 5
感谢您的代码,它有效,但仔细观察后,我发现这一行可以完成这项工作:
myfiles = IO.Directory.GetFiles(strpath, "*.*", IO.SearchOption.AllDirectories)
Run Code Online (Sandbox Code Playgroud)
只需将搜索选项从 TopDirectoryOnly 更改为 AllDirectories。我总是希望使用本机函数。