我在使用VS 2015的Windows 10上使用VB.NET语言
我尝试制作目录,然后将文件从我应用的资源文件夹复制到该目录
代码:
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"但在复制时访问被拒绝。
我不知道为什么拒绝访问...你能帮帮我吗?
答案 0 :(得分:2)
您的代码的问题是您指定目录名而不是文件名作为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()
。你不必担心。