Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何使用FTP同时下载多个文件_Vb.net_Multithreading_Vb.net 2010 - Fatal编程技术网

Vb.net 如何使用FTP同时下载多个文件

Vb.net 如何使用FTP同时下载多个文件,vb.net,multithreading,vb.net-2010,Vb.net,Multithreading,Vb.net 2010,我试图同时从ftp服务器下载多个文件,但无法执行此操作 我试过这个 Const localFile As String = "C:\Documents and Settings\cr\Desktop\TE\New Folder\" Const remoteFile As String = "/O/IE/TBML-T/FE/11/TB/" Const host As String = "ftp://ftp4.example.com" Const username As String = "user

我试图同时从ftp服务器下载多个文件,但无法执行此操作

我试过这个

Const localFile As String = "C:\Documents and Settings\cr\Desktop\TE\New Folder\"
Const remoteFile As String = "/O/IE/TBML-T/FE/11/TB/"
Const host As String = "ftp://ftp4.example.com"
Const username As String = "username"
Const password As String = "password"

For i = 0 To ListBox1.SelectedItems.Count - 1

    Dim URI As String = host + remoteFile & ListBox1.SelectedItems(i)
    Dim ftp As System.Net.FtpWebRequest = CType(FtpWebRequest.Create(URI), FtpWebRequest)
    ftp.Credentials = New System.Net.NetworkCredential(username, password)
    ftp.KeepAlive = False
    ftp.UseBinary = True
    ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile
    Using response As System.Net.FtpWebResponse = CType(ftp.GetResponse, System.Net.FtpWebResponse)
        Using responseStream As IO.Stream = response.GetResponseStream
            Dim length As Integer = response.ContentLength
            Dim bytes(length) As Byte

            'loop to read & write to file
            Using fs As New IO.FileStream(localFile & ListBox1.SelectedItems(i), IO.FileMode.Create)
                Dim buffer(2047) As Byte
                Dim read As Integer = 1
                Do
                    read = responseStream.Read(buffer, 0, buffer.Length)
                    fs.Write(buffer, 0, read)
                Loop Until read = 0 'see Note(1)
                responseStream.Close()
                fs.Flush()
                fs.Close()
            End Using
            responseStream.Close()
        End Using

        response.Close()
    End Using
Next
使用上面的代码,我可以下载多个文件,但它会在第一个文件下载完成后下载第二个文件,依此类推,而不是我希望代码的执行方式应确保所有选定的文件同时开始下载


我认为这可以通过多线程来实现,但我对此不太熟悉。

没有必要大喊大叫。MSDN有一个很好的方法可以让你达到目的。@Adam Zuckerman你能帮我写一篇文章、一段代码或一个提示来完成以下操作吗..单击我提供的链接。它会给你大量的信息。