hey im trying to download a zip or rar file dosen't matter from a ftp, lets say my program is inside a folder and i want the files to automatis download to the same folder and then i should be extracted from zip to normal files i have all ready made a code but im very bad with the directions so can any help me![]()
Code:Imports System.Net Public Class MainForm Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load Control.CheckForIllegalCrossThreadCalls = False End Sub Private Sub btnBrowseSave_Click(sender As Object, e As EventArgs) Handles btnBrowseSave.Click Dim newFolder As New FolderBrowserDialog If newFolder.ShowDialog = Windows.Forms.DialogResult.OK Then txtSavePath.Text = newFolder.SelectedPath End If End Sub Private Sub btnDownload_Click(sender As Object, e As EventArgs) Handles btnDownload.Click bWorker.RunWorkerAsync() End Sub Private Sub bWorker_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles bWorker.DoWork Dim buffer(1023) As Byte Dim bytesIn As Integer Dim totalBytesIn As Integer Dim output As IO.Stream Dim flLength As Integer Try Dim FTPRequest As FtpWebRequest = DirectCast(WebRequest.Create(txtFilePath.Text), FtpWebRequest) FTPRequest.Credentials = New NetworkCredential(txtFTPUsername.Text, txtFTPPassword.Text) FTPRequest.Method = Net.WebRequestMethods.Ftp.GetFileSize flLength = CInt(FTPRequest.GetResponse.ContentLength) lblFileSize.Text = flLength & " gb" Catch ex As Exception End Try Try Dim FTPRequest As FtpWebRequest = DirectCast(WebRequest.Create(txtFilePath.Text), FtpWebRequest) FTPRequest.Credentials = New NetworkCredential(txtFTPUsername.Text, txtFTPPassword.Text) FTPRequest.Method = WebRequestMethods.Ftp.DownloadFile Dim stream As System.IO.Stream = FTPRequest.GetResponse.GetResponseStream Dim OutputFilePath As String = txtSavePath.Text & "\" & IO.Path.GetFileName(txtFilePath.Text) output = System.IO.File.Create(OutputFilePath) bytesIn = 1 Do Until bytesIn < 1 bytesIn = stream.Read(buffer, 0, 1024) If bytesIn > 0 Then output.Write(buffer, 0, bytesIn) totalBytesIn += bytesIn lblDownloadedBytes.Text = totalBytesIn.ToString & " gb" If flLength > 0 Then Dim perc As Integer = (totalBytesIn / flLength) * 100 bWorker.ReportProgress(perc) End If End If Loop output.Close() stream.Close() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub bWorker_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles bWorker.ProgressChanged pBar.Value = e.ProgressPercentage lblPercent.Text = e.ProgressPercentage.ToString & "%" End Sub Private Sub bWorker_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bWorker.RunWorkerCompleted MsgBox("Download Complete!") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim sc As New Shell32.Shell() 'Create directory in which you will unzip your files . IO.Directory.CreateDirectory(".") 'Declare the folder where the files will be extracted Dim output As Shell32.Folder = sc.NameSpace(".") 'Declare your input zip file as folder . Dim input As Shell32.Folder = sc.NameSpace("./test.zip") 'Extract the files from the zip file using the CopyHere command . output.CopyHere(input.Items, 4) End Sub End Class




Reply With Quote
