VB.NET directory.EnumerateFiles: 访问路径 X 被拒绝

VB.NET directory.EnumerateFiles: Access to path X is denied

好的,所以我正在尝试编写一个程序来查找 C 驱动器上的特定文件并获取其位置。但是下面的代码不起作用!我对此进行了很多研究,从 GetFiles 到 Directory.enumerateFiles。但是,我将 运行 保留为一个异常,声称我无权访问,只是忽略消息(关闭 it/pressing ok)不会继续搜索,而是完全停止搜索,我需要一种绕过此方法的方法,如果可能,所以如果目录导致异常,它将跳过它并在屏幕上尽可能没有错误地移动。 目前清单文件设置为 "requireAdministrator" 所以我知道这不是问题所在。 运行 VB as administrator 没有解决,运行 admin 编译的文件也不行。希望有人能帮忙! 注意:我使用的是 Visual Basic 2010 Express,由于硬件和操作系统的限制,我没有升级到新版本的计划。

Imports System.IO

Public Class GuardianScanner

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TextBox1.ReadOnly = True
    TextBox1.ScrollBars = ScrollBars.Vertical

    Button1.Enabled = False
    TextBox1.AppendText(Environment.NewLine & "[INFO] Please wait while scanning. This can take a few minutes")
    Try

        For Each file As String In Directory.EnumerateFiles("C:\", "GodlyNorris.exe", SearchOption.AllDirectories)

                TextBox1.AppendText(Environment.NewLine & "[INFO] Found virus: AUTONORRIS: " & file.ToString)





        Next file

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

我试着将其作为评论发布,但它非常混乱。这应该可行,基本上它会尝试从 C 驱动器中的每个子目录创建一个目录,如果由于未授权访问异常而失败,它会移动到下一个子目录。

For Each directory In New DirectoryInfo("C:\").GetDirectories()
    Try
        For Each file In directory.GetFiles("*", SearchOption.AllDirectories)
            Try
                TextBox1.Text += Environment.NewLine + file.Name
            Catch ex As Exception
                'MsgBox(ex.Message)
                Continue For
            End Try
        Next
    Catch ex As Exception
        'MsgBox(ex.Message)
        Continue For
    End Try
Next