Я новичок в VB.NET, и я искал Google об этом много, но не смог найти ответ.Загрузите zip-файл и извлеките его с помощью фонового рабочего
Я хочу, чтобы программа загружала zip-файл и извлекала его с помощью BackgroundWorker.
У меня есть код для загрузки, но не удалось найти, как распаковать файл с помощью BackgroundWorker.
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
downloadFile("https://dl.dropboxusercontent.com/u/85542087/test.exe", "test.exe")
Status.Text = "Downloading file from W4H Servers...."
End Sub
Private Sub downloadFile(ByVal srcPath As String, ByVal destPath As String)
Dim wClient As New System.Net.WebClient()
AddHandler wClient.DownloadProgressChanged, AddressOf downloadFile_ProgressChanged
wClient.DownloadFileAsync(New System.Uri(srcPath), destPath)
Status.Text = "Downloading file from W4H Servers...."
End Sub
Private Sub downloadFile_ProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
Status.Text = "Downloading file from W4H Servers...."
ProgressBar1.Maximum = e.TotalBytesToReceive
ProgressBar1.Value = e.BytesReceived
Application.DoEvents()
If e.ProgressPercentage = 100 Then
'download completed
System.Threading.Thread.Sleep(2000)
Me.Close()
Form1.Close()
Process.Start("test.exe")
End If
End Sub
Вышеупомянутый код загрузит мой файл в пути выполнения EXE и запустит его оттуда. Поэтому я хочу извлечь его и запустить.
Почтовый индекс будет «test.zip» и содержит «test.exe».
Я использую DotNetZip- добавляет DLL, но работает отлично. Насколько я знаю, нет никакого решения Windows или .Net для распаковки или извлечения файловой формы .zip-файла. – rheitzman
Я использовал SharpZipLib (http://icsharpcode.github.io/SharpZipLib/), и он отлично поработал. Вероятно, вам действительно не нужен BackgroundWorker, если это не очень большой файл. Распаковка обычного .exe займет менее секунды. –
Вам нужно сосредоточиться * не * на *, как распаковать файл с использованием рабочего стола *, но по 2 отдельным вопросам - * используя фонового рабочего * -> https://msdn.microsoft.com/en-us/library/cc221403% 28v = vs.95% 29.aspx и * unzipping file *. После того, как у вас есть код, который распаковывает файл, вы запускаете его в 'bgw'' DoWork' - done –