此代码有效:
Public Sub Install()
progDirectory = )
My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", My.Resources.Resource, False)
Unzip(SelFolder & "\Resource.zip", SelFolder)
End Sub
但这不是:
Dim progDirectory As
Public Sub Install()
progDirectory = Environment.GetFolderPath(System.Environment.CurrentDirectory)
My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)
Unzip(SelFolder & "\Resource.zip", SelFolder)
End Sub
我想要完成的基本要点是找到exe的当前目录/路径,然后从该目录中找到“Resource.zip”文件。
代码的顶部将.zip文件写入选择位置(SelFolder)解压缩,然后从该文件夹中删除Resource.zip。
代码的第二部分旨在做同样的事情,但是使用目录中的zip而不是app资源,因为我希望它们是分开的。
我得到的错误是:'String'类型的值不能转换为'Byte的1维数组'。在这一行:
My.Computer.FileSystem.WriteAllBytes(SelFolder&“\ Resource.zip”,progDirectory,False)
答案 0 :(得分:0)
使用:File.Copy(SelFolder & "\Resource.zip", progDirectory)
而不是:My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)
答案 1 :(得分:0)
可执行文件的当前路径可以通过属性AppDomain.CurrentDomain.BaseDirectory获取。
还有其他方法可以获得它,但我们在几年前发现编写在多个平台(包括Windows Mobile)上执行的代码时,这是检索信息最安全的方法。
因此,您可以将progDirectory分配更改为:
progDirectory = AppDomain.CurrentDomain.BaseDirectory