VB 文件夹:拒绝访问(具有管理员权限)

VB Folder: Access Denied (with admin rights)

我在 windows 10 上使用 VB.NET 语言和 VS 2015

我正在尝试创建一个目录,然后将文件从我的应用的资源文件夹复制到该目录

代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim SubFolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Main Folder\Sub Folder")

    Directory.CreateDirectory(SubFolderPath)

    'Error: access denied to "C:\Program Files\Main Folder\Sub Folder"
    File.WriteAllBytes(SubFolderPath, My.Resources.exe1)
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    File.WriteAllBytes(SubFolderPath, My.Resources.exe2)
    File.WriteAllBytes(SubFolderPath, My.Resources.exe2dat)
End Sub

我收到上面代码中评论的错误,(我有管理员权限)

代码结果:已创建文件夹 "C:\Program Files\Main Folder\Sub Folder" 但复制时访问被拒绝。

我不知道为什么访问被拒绝...你能帮我吗?

您的代码存在的问题是您将目录名而不是文件名指定为 File.WriteAllBytes 方法的第一个参数:

File.WriteAllBytes(SubFolderPath, My.Resources.exe1)`

做这样的事情来纠正它:

File.WriteAllBytes(SubFolderPath & "\exe1.exe", My.Resources.exe1)
File.WriteAllBytes(SubFolderPath & "\exe2.exe", My.Resources.exe2)
File.WriteAllBytes(SubFolderPath & "\exe2dat.dat", My.Resources.exe2dat)

Byte() 也不是问题。每当您将二进制 exe 导入资源时,它都会存储为 Byte()。这个你不用担心。