2013-07-14 154 views
0

我试图让应用程序找到它的当前路径/目录,然后用它来安装一个zip文件,然后将其解压缩到指定的位置。 (SelFolder)类型'字符串'的值不能被转换为'字节的一维数组'

Dim progDirectory As String 

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 

错误是progDirectory在使用WriteAllBytes命令时的位置。

任何帮助将不胜感激! :)

+0

WriteAllBytes的第二个参数应该是您尝试写入的字节。你目前正在传递一个字符串... WriteAllBytes有什么意义?即你试图用它来实现什么? – veljkoz

+0

将zip文件写入用户选择的目录,然后解压缩并删除。如果我使用My.Resources.Resource代码,则适用。但是我想让它与程序分开。 – user2580915

+0

为什么不使用['System.IO.File.Copy'](http://msdn.microsoft.com/zh-cn/library/9706cfs5.aspx)方法将zip文件复制到用户选择的目录? – ajakblackgoat

回答

1

看来你是误解如何使用WriteAllBytes

FileSystem.WriteAllBytes的第二个参数是要写入的数据(byte[] data)。你传递一个字符串来代替文件的路径,这就是为什么你会得到这个错误。

+0

那么如何改变这个问题来解决这个问题呢?或者说,我该如何将字符串转换为字节数组? – user2580915

+0

您是否正在编写'progDirectory'到您的文件?考虑到这不是创建zip文件的方式,但是如果您想要将'progDirectory'转换为字节数组,那么可以轻松完成。 –

+0

我将分发.exe和.zip文件,所以我想获取.exe文件的位置。 (或者.zip,如果可能的话) 如果我使用: My.Computer.FileSystem.WriteAllBytes(SelFolder&“\ Resource.zip”,My.Resources.Resource,False)它工作正常。 – user2580915

相关问题