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()
。这个你不用担心。
我在 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()
。这个你不用担心。