2013-07-14 155 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

相關問題