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
好的,所以我正在尝试编写一个程序来查找 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