Скачать файл и обновить программу
Привет,
Я пытаюсь загрузить файл из googledrive, если версия программы ниже, чем фактическая в соответствии с txt-файлом (1.0.0.1) в dropbox. Когда я загружаю файл, метка показывает мне размер файла и индикатор выполнения процесса загрузки, это работает хорошо, но файл не загружается в местоположение. Кто-нибудь знает, почему? Я бы хотел, чтобы это работало: после завершения загрузки программа выходит и запускает загруженную новую версию программы.
Что я уже пробовал:
Dim myCode As Byte() Dim cesta_souboru As String = "C:\Filip\Etikety\Debug" Dim file As String = cesta_souboru + "\file.txt" Dim wc As WebClient Private Sub posli(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles check_update.Click wc = New WebClient() Dim filename = "file.txt" Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.dropbox.com/s/uywfkhi7wdqa4en/Version.txt?dl=1") Dim response As System.Net.HttpWebResponse = request.GetResponse() Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) Dim newestversion As String = sr.ReadToEnd() MsgBox(newestversion) Dim currentversion As String = Application.ProductVersion MsgBox(currentversion) If newestversion.Contains(currentversion) Then MsgBox("Používáte aktuální verzi") Else MsgBox("Nová verze programu je ke stažení, aktualizuji ji pro vás.") Try System.IO.File.Delete(file) Catch ex As UnauthorizedAccessException End Try AddHandler wc.DownloadProgressChanged, AddressOf DownloadProgressChanged 'AddHandler wc.DownloadDataCompleted, AddressOf DownloaddataCompleted wc.DownloadDataAsync(New Uri("https://drive.google.com/open?id=0B_pejckobLScTWJhUk9jasfhjk"), cesta_souboru + "\" + filename) End If End Sub Private Sub DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) ProgressBar1.Value = e.ProgressPercentage lbl_prog_percent.Text = e.ProgressPercentage.ToString() + "%" lbl_received.Text = String.Format("{0} MB/s / {1} MB/s", (e.BytesReceived / 1024D / 1024D).ToString(), (e.TotalBytesToReceive / 1024D / 1024D).ToString("0.00")) End Sub Private Sub DownloaddataCompleted(ByVal sender As Object, ByVal e As DownloadDataCompletedEventArgs) RemoveHandler wc.DownloadProgressChanged, AddressOf DownloadProgressChanged RemoveHandler wc.DownloadDataCompleted, AddressOf DownloaddataCompleted ProgressBar1.Value = 0 If e.Error IsNot Nothing Then MessageBox.Show(e.Error.Message) ElseIf e.Cancelled Then MessageBox.Show("Download cancelled by the user") Else 'myCode = e.Result End If Dim URL As String = DirectCast(e.UserState, String) MessageBox.Show(URL) Timer5.Start() End Sub Private Sub Timer5_Tick(sender As Object, e As EventArgs) Handles Timer5.Tick Process.Start(cesta_souboru + "\iMontix.exe") Application.Exit() End Sub
CHill60
Вы пробовали его отладить?
Member 13711215
Привет, да, файл был найден, размер совпадает, и путь для загрузки тоже есть. Я редактирую DownloaddataCompleted в DownloadstringCompleted