-1

此代码有效:

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 而不是应用程序资源,因为我希望它们是分开的。

我得到的错误是:“字符串”类型的值无法转换为“字节的一维数组”。在这条线上:

My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)

4

2 回答 2

0

利用:File.Copy(SelFolder & "\Resource.zip", progDirectory)

代替:My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)

于 2013-07-14T23:39:37.987 回答
0

可执行文件的当前路径可以通过属性AppDomain.CurrentDomain.BaseDirectory获得。

还有其他获取信息的方法,但我们多年前在编写在包括 Windows Mobile 在内的多个平台上执行的代码时发现,这是检索信息的最安全方法。

因此,您可以将 progDirectory 分配更改为:

    progDirectory = AppDomain.CurrentDomain.BaseDirectory
于 2013-07-15T01:48:16.283 回答