vb.net - VB.NET 中的递归文件搜索

标签 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

感谢任何解决方案。

最佳答案

感谢您提供的代码,它有效,但仔细查看后,我发现这一行就可以完成这项工作:

myfiles = IO.Directory.GetFiles(strpath, "*.*", IO.SearchOption.AllDirectories)

只是将搜索选项从 TopDirectoryOnly 更改为 AllDirectories。我总是希望使用 native 函数。

关于vb.net - VB.NET 中的递归文件搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44103640/

相关文章:

c# - 安装项目在安装过程中不创建文件系统文件夹

javascript递归字符串连接

javascript - 从嵌套 JSON 构建键值数组

search - 在 VS Code 中,是否有选项可以包含某些文件夹中的文件并按文件扩展名/名称进行过滤?

ubuntu - 在 Ubuntu 16.04 上安装 ginac - 没有这样的文件或目录

vb.net - 捕获一般异常时,如何判断原始异常类型?

.net - 我怎样才能使这个通用

python - 为什么我的 Minimax 不能正确展开和移动?

batch-file - 批处理文件 - 搜索一个单词并提取变量中的下一个单词

excel - 在 SSIS 中从 Excel 读取数据时出现无效转换异常